窗口上的运行时绘图
问题描述:
我通常会将绘图放在WM_PAINT中以在屏幕上绘制,但如果您需要在运行时弄清楚这一点,那么您仍然会使用GDI绘图API?窗口上的运行时绘图
例 -
//In WndProc
case WM_PAINT:
{
hdc = GetWindowDC (hwnd) ;
//draw here using hdc
ReleaseDC (hwnd, hdc) ;
}
而不是把图中WM_PAINT,可你画使用的功能,仍然可以得到WM_PAINT的功能,以重绘?
答
WM_PAINT是异步的,意味着它在OS决定重新绘制窗口时调用。您还可以通过在WM_PAINT消息处理程序之外调用GetDC()/ ReleaseDC()来同步绘制。
http://msdn.microsoft.com/en-us/library/dd145126(v=vs.85).aspx
而且,处理WM_PAINT消息时,你应该使用调用BeginPaint()/ EndPaint函数(),并返回0。我已经看到了一些奇怪的副作用时,这种情况不会发生。
你可以更具体一些,也许有一个例子。 – Lazarus 2010-04-22 15:14:07