This is the relevant part of my code:
case WM_CTLCOLORBTN:
case WM_CTLCOLOREDIT:
case WM_CTLCOLORSTATIC:
SetBkMode(HDC(wParam),TRANSPARENT);
return LRESULT(HBRUSH(GetStockObject(NULL_BRUSH)));
It makes the background all the controls transparent, including the edit ones. But when some text is typed, it overwrites on itself and looks messy. How should I reset the visible area and redraw with the current situation? Should I process something inside WM_COMMANDs EN_CHANGE or WM_PAINT or something else?

