【问题标题】:win32 SDK child window paint (C/C++)win32 SDK子窗口绘制(C/C++)
【发布时间】:2010-10-01 22:48:25
【问题描述】:

我正在使用 win32 Platform SDK(在 XP Pro 上)创建一个应用,该应用由一个主窗口和多个子窗口组成。

传递给 CreateWindow 的样式是 WS_OVERLAPPEDWINDOW | WS_VISIBLE(用于主窗口)和 WS_CHILDWINDOW | WS_VISIBLE 用于子窗口。

我看到的错误是,当另一个应用程序被拖到我的应用程序顶部时,底层窗口不会重绘。强制更新的一种简单(但笨拙)的方法是“摇晃”标题栏。

我猜我错过了一条 Windows 消息或没有正确调用 win32 函数。我的大部分代码直接来自 Petzold 的 95 本书。

如果重要的话,主窗口不需要绘制任何东西:子窗口处理所有显示任务。

【问题讨论】:

    标签: winapi childwindow


    【解决方案1】:

    听起来您没有为 WM_PAINT 消息调用 DefWindowProc。

    您确定您正确处理了WM_PAINT 事件吗? 特别要确保对于您正在调用的此 WM_PAINT 消息:

    DefWindowProc(hwnd,msg,wParam,lParam);
    

    当您的窗口需要重新绘制时,将调用 WM_PAINT。

    如果您尝试处理自己的窗口绘制,请确保您在处理程序中调用 BeginPaint 和 EndPaint。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-01
      • 2010-11-23
      相关资源
      最近更新 更多