Jak wiadomo, edit nie moze byc OwnerDraw - wiec jak przejac jego rysowanie?
Probowalem przez subclassing i napisalem cos takiego:
LRESULT APIENTRY EditSubclassProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
PAINTSTRUCT ps;
HDC hdc;
if (uMsg == WM_GETDLGCODE)
return DLGC_WANTALLKEYS;
switch (uMsg)
{
case WM_PAINT:
{hdc = BeginPaint(hwnd, &ps);
RECT rc;
GetClientRect(hwnd,&rc);
FillRect(hdc,&rc,CreateSolidBrush(RGB(100,255,255)));
EndPaint(hwnd, &ps);
return 0;
}
}
return CallWindowProc(wpOrigEditProc, hwnd, uMsg,
wParam, lParam);
}
Chodzi mi np o narysowanie bordera i tla niestandardowego - moglbym probowac przez RoundRect tak jak jest tutaj FillRect - ale jak nie dopuscic do narysowania standardowej kontrolki? Poza tym teraz jezeli klikne na edita to tlo jest znowu przerysowywane na bialo..... jak przejac calkowita kontrole nad rysowaniem kontrolki?
Myslalem zeby nie uzywac tego:
return CallWindowProc(wpOrigEditProc, hwnd, uMsg,
wParam, lParam);
Ale wtedy nie wiem jak obsluzyc standardowe komunikaty edita (moze jakos z CallWindowProc?)
Pomoze mi ktos?