窗口上的运行时绘图

时间:2010-04-22 15:11:06

标签: gdi

我通常将我的绘图放在WM_PAINT中以在屏幕上绘制,但如果你需要在运行时弄清楚这一点,你还会使用GDI绘图API吗?

示例 -

//In WndProc

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

}

不是将绘图放在WM_PAINT中,而是可以使用函数绘制并仍然可以重绘WM_PAINT的功能吗?

1 个答案:

答案 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.我没有看到一些奇怪的副作用。