1

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

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

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

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

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

4

1 回答 1

0

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

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

DefWindowProc(hwnd,msg,wParam,lParam);

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

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

于 2009-01-17T03:38:00.013 回答