Рисование во время выполнения на окне - PullRequest
0 голосов
/ 22 апреля 2010

Я обычно помещаю свой рисунок в WM_PAINT, чтобы рисовать на экране, но если вам нужно выяснить это во время выполнения, вы все равно используете API рисования GDI?

* ** 1003 тысяча два * Пример
//In WndProc

case WM_PAINT:
{
   hdc = GetWindowDC (hwnd) ;
   //draw here using hdc
   ReleaseDC (hwnd, hdc) ;

}

Вместо того, чтобы поместить чертеж в WM_PAINT, можете ли вы рисовать, используя функцию, и все же заставить функциональность WM_PAINT перерисовать?

1 Ответ

0 голосов
/ 22 апреля 2011

WM_PAINT является асинхронным, то есть вызывается, когда ОС решает, что пришло время перекрасить окно. Вы также можете рисовать синхронно, вызывая GetDC () / ReleaseDC () вне обработчика сообщений WM_PAINT.

http://msdn.microsoft.com/en-us/library/dd145126(v=vs.85).aspx

Кроме того, при обработке сообщений WM_PAINT следует использовать BeginPaint () / EndPaint () и возвращать 0. Я видел некоторые странные побочные эффекты, когда этого не происходит.

...