Я читал, что я никогда не должен отправлять WM_PAINT
вручную и вместо этого должен вызывать InvalidateRect
, но не нашел ничего о том, почему бы и нет. Так почему не?
обновление работает с InvalidateRect
, но не с SendMessage(WM_PAINT)
LRESULT CALLBACK window_proc(HWND wnd, UINT msg, WPARAM w_param, LPARAM l_param)
{
switch (msg)
{
case WM_PAINT:
PAINTSTRUCT ps;
HDC hdc = BeginPaint(wnd, &ps);
Polyline(..);
EndPaint(wnd, &ps);
return 0;
case WM_USER:
// SendMessage(wnd, WM_PAINT, NULL, NULL);
// InvalidateRect(wnd, NULL, FALSE);
return 0;
}
}
InvalidateRect
, тоBeginPaint
говорит: "О, окно все еще действует". Ничего красить не надо. - person Raymond Chen   schedule 16.03.2014