窗口上的运行时绘图

问题描述:

我通常会将绘图放在WM_PAINT中以在屏幕上绘制,但如果您需要在运行时弄清楚这一点,那么您仍然会使用GDI绘图API?窗口上的运行时绘图

-

//In WndProc 

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

} 

而不是把图中WM_PAINT,可你画使用的功能,仍然可以得到WM_PAINT的功能,以重绘?

+0

你可以更具体一些,也许有一个例子。 – Lazarus 2010-04-22 15:14:07

WM_PAINT是异步的,意味着它在OS决定重新绘制窗口时调用。您还可以通过在WM_PAINT消息处理程序之外调用GetDC()/ ReleaseDC()来同步绘制。

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

而且,处理WM_PAINT消息时,你应该使用调用BeginPaint()/ EndPaint函数(),并返回0。我已经看到了一些奇怪的副作用时,这种情况不会发生。