2009-01-09 122 views
1

非常感謝你們的幫助,這讓我困擾了幾天。菜單項閃爍調整大小

我正在使用Windows Vista,並使用直接Windows API(不使用MFC)在C++中編寫我的程序。

當我調整窗口大小時,菜單項閃爍。我的窗口類不使用CS_HREDRAW或CS_VREDRAW。我爲CLIENT AREA使用雙緩衝,所以客戶區不閃爍,只有非客戶區的菜單。

現在我可以通過自己處理WM_NCPAINT來解決這個問題,但我真的不想處理非客戶區的所有繪圖。我也處理WM_ERASEBKGND,但這隻對CLIENT AREA有幫助。我對如何解決這個問題感到非常失望。我已搜查谷歌廣泛,並且已經閱讀並嘗試了一切

http://catch22.net/tuts/flicker

已建議。再次感謝你們。我希望你能幫助我理解爲什麼我的菜單項閃爍(儘管不是菜單欄,也不是邊框,也不是窗口標題欄)。

回答

2

我很高興地說我解決了這個問題!我只需將WS_EX_COMPOSITED傳遞給用菜單欄創建窗口,使用CreateWindowEx()!效果很好,同時也照顧兒童窗戶的閃爍。以爲我會和大家分享一下,以防萬一你遇到同樣煩人的閃爍。