0
這是用於C++ - win32的。基本上我已經從一個文件中將一個圖像(bmp)加載到HBITMAP中,並將它切換到主窗口的設備上下文中。WM_PAINT多次分裂?
如果我想改變圖像,我會再次調用它嗎?
我調用了InvalidateRectangle()和UpdateWindow(),但導致窗口控件閃爍。
這是用於C++ - win32的。基本上我已經從一個文件中將一個圖像(bmp)加載到HBITMAP中,並將它切換到主窗口的設備上下文中。WM_PAINT多次分裂?
如果我想改變圖像,我會再次調用它嗎?
我調用了InvalidateRectangle()和UpdateWindow(),但導致窗口控件閃爍。
通常您會使該區域無效(例如,通過InvalidateRect
),並讓WM_PAINT
處理程序重繪它。經常會出現閃爍的原因是因爲您沒有重寫WM_ERASEBKGND
處理程序,您的WM_PAINT
處理程序沒有執行雙緩衝繪製,或者無效(或重新繪製)比您需要的區域更大的區域。
此頁面可能有幫助:Flicker-free Drawing: Techniques to eliminate flicker from your applications
啊,完美的謝謝,現在我明白了。 – user1255454