2009-01-17 110 views
1

我正在使用win32平台SDK(在XP专业版上)创建一个应用程序,其中包含一个包含多个子窗口的主窗口。win32 SDK子窗口画图(C/C++)

传递给CreateWindow的样式为儿童的WS_OVERLAPPEDWINDOW | WS_VISIBLE(对于主窗口)和WS_CHILDWINDOW | WS_VISIBLE

我看到的错误是,当另一个应用程序被拖到我的应用程序顶部时,基础窗口不会重新绘制。一个简单的(但非常简单)的方式来强制更新是'摇晃'标题栏。

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

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

回答

0

听起来好像你没有为WM_PAINT消息调用DefWindowProc。

您确定您正在处理WM_PAINT事件吗? 特别是确保该WM_PAINT消息,你在呼唤:当需要重画你的窗口

DefWindowProc(hwnd,msg,wParam,lParam); 

WM_PAINT将被调用。

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