2009-01-17 106 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。