我通常将我的绘图放在WM_PAINT中以在屏幕上绘制,但如果你需要在运行时弄清楚这一点,你还会使用GDI绘图API吗?
示例 -
//In WndProc
case WM_PAINT:
{
hdc = GetWindowDC (hwnd) ;
//draw here using hdc
ReleaseDC (hwnd, hdc) ;
}
不是将绘图放在WM_PAINT中,而是可以使用函数绘制并仍然可以重绘WM_PAINT的功能吗?
答案 0 :(得分:0)
WM_PAINT是异步的,这意味着当操作系统决定重新绘制窗口时,会调用它。您还可以通过在WM_PAINT消息处理程序之外调用GetDC()/ ReleaseDC()来同步绘制。
http://msdn.microsoft.com/en-us/library/dd145126(v=vs.85).aspx
另外,在处理WM_PAINT消息时,你应该使用BeginPaint()/ EndPaint()并返回0.我没有看到一些奇怪的副作用。