我正在使用win32 Platform SDK(在XP专业版上)创建一个应用程序,其中包含一个带有多个子窗口的主窗口。
传递给CreateWindow的样式是WS_OVERLAPPEDWINDOW | WS_VISIBLE
(对于主窗口)和WS_CHILDWINDOW | WS_VISIBLE
对于孩子。
我看到的错误是当我的应用程序上拖动另一个应用程序时,底层窗口不会被重绘。强制更新的一种简单(但很有瑕疵)的方法是“摇动”标题栏。
我猜我错过了一条Windows消息或没有正确调用win32函数。我的大部分代码都直接来自Petzold的95书。
如果重要,主窗口不需要绘制任何东西:子窗口处理所有显示任务。
答案 0 :(得分:0)
听起来你没有为WM_PAINT消息调用DefWindowProc。
您确定要正确处理WM_PAINT事件吗? 特别要确保您正在调用的WM_PAINT消息:
DefWindowProc(hwnd,msg,wParam,lParam);
当您的窗口需要重新绘制时,将调用WM_PAINT。
如果您正在尝试处理自己的窗口绘图,请确保在处理程序中调用BeginPaint和EndPaint。