【问题标题】:Runtime Drawing on window窗口上的运行时绘图
【发布时间】:2010-04-22 15:11:06
【问题描述】:

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

示例-

//In WndProc

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

}

除了把绘图放在WM_PAINT中,你可以使用函数进行绘制,并且仍然可以使用WM_PAINT的功能来重绘吗?

【问题讨论】:

  • 你能不能说得更具体一些,也许可以举个例子。

标签: gdi


【解决方案1】:

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

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

此外,在处理 WM_PAINT 消息时,您应该使用 BeginPaint()/EndPaint() 并返回 0。如果不发生这种情况,我已经看到了一些奇怪的副作用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多