2013-01-16 58 views
0

這是用於C++ - win32的。基本上我已經從一個文件中將一個圖像(bmp)加載到HBITMAP中,並將它切換到主窗口的設備上下文中。WM_PAINT多次分裂?

如果我想改變圖像,我會再次調用它嗎?

我調用了InvalidateRectangle()和UpdateWindow(),但導致窗口控件閃爍。

回答

2

通常您會使該區域無效(例如,通過InvalidateRect),並讓WM_PAINT處理程序重繪它。經常會出現閃爍的原因是因爲您沒有重寫WM_ERASEBKGND處理程序,您的WM_PAINT處理程序沒有執行雙緩衝繪製,或者無效(或重新繪製)比您需要的區域更大的區域。

此頁面可能有幫助:Flicker-free Drawing: Techniques to eliminate flicker from your applications

+0

啊,完美的謝謝,現在我明白了。 – user1255454