Добрый день,Рисунок: WM_MOUSEMOVE
Что лучше всего подходит для рисования мышью? Я вижу много примеров (в MSDN), когда рисунок выполняется в WM_MOUSEMOVE. Но я думаю, что лучший подход - это все рисование в WM_PAINT.
Пример:
Version 1
case WM_MOUSEMOVE:
{
DummyFunctionForClientCoords();
DummyFunctionForDrawing();
}
break;
Version 2
case WM_MOUSEMOVE:
{
DummyFunctionForClientCoords();
InvalidateRect(hwnd, &rc, TRUE); /* For sake of simplicity, update region is all area. */
}
break;
case WM_PAINT:
{
DummyFunctionForDrawing();
}
break;
Может быть, этот вопрос мнение основано, но я хочу знать преимущества и недостатки Версия 1 против Версия 2.
Что вы рисуете при движении мыши? –
Вы можете рисовать, когда захотите; единственным правилом является то, что ваш обработчик 'WM_PAINT' должен иметь возможность воссоздать весь экран по требованию. Но обратите внимание, что сообщения 'WM_PAINT' генерируются только в том случае, если в очереди нет других сообщений, поэтому, если вы не используете« UpdateWindow »для принудительной перерисовки, вы получите задержанную обратную связь, если пользователь быстро перемещает мышь. –
(Кстати, вопросы, касающиеся «лучшей практики», как правило, вне темы для SO, поскольку они основаны прежде всего на мнениях). –