解決vc介面閃爍問題

2021-06-01 08:27:20 字數 492 閱讀 4371

這是個老生常談的問題,有過vc編寫介面的經驗的人大都遇過,至於問題產生的原因,網上已有太多描述,這裡只給出幾個解決方法的建議。

1、雙緩衝,這個是基本是必須的處理方式,同時最好處理wm_erasebkgnd訊息。

2、有些情況儘管使用了雙緩衝,但是在視窗拉伸的時候還是有閃爍的情況,例如介面控制項很複雜,基本都為自繪控制項時。這時視窗的ws_clipchildren | ws_clipsiblings屬性或許是有幫助的,視窗被設定該屬性後,所有的子控制項都是自己處理繪製。這時難免會帶來一些例如子視窗背景繪製的問題(groupbox比較明顯,各位可以嘗試一下)。這時需要所有的子控制項都要自己處理背景。360安全衛士即通過這種方式解決介面重新整理問題,具體可以spy++抓抓看。

3、最終解決方案,在主窗體存在大量子視窗時,其中的關鍵就是excludecliprect。通過該函式根據子視窗型別,動態設定視窗的裁剪區域。子視窗根據實際需要做相應的自繪處理,這樣就既保證了效率,又保證了擴充套件的靈活性。uiskinx介面庫即是通過該方式實現。

解決WinForm介面閃爍問題

前言 之前將.net 1.1 windows form程式公升級到.net 4.0,結果在開畫面時,閃的非常利害 於是就開始找解決方法。開始找到了設定doublebuffer true,這個有一點點用,在高檔的機器上面,但是在4年前的nb問題還是一樣,尤其是當畫面物件很多時,感覺是乙個乙個畫出來 還...

解決Windows程式介面閃爍問題的經驗

一般的windows複雜的介面需要使用多層視窗而且要用貼圖來美化,所以不可避免在視窗移動或者改變大小的時候出現閃爍。先來談談閃爍產生的原因 原因一 如果熟悉顯示卡原理的話 呼叫gdi函式向螢幕輸出的時候並不是立刻就顯示在螢幕 上只是寫到了視訊記憶體裡,而顯示卡每隔一段時間把視訊記憶體的內容輸出到螢幕...

VC視窗閃爍的解決辦法

一般的windows 複雜的介面需要使用多層視窗而且要用貼圖來美化,所以不可避免在視窗移動或者改變大小的時候出現閃爍。先來談談閃爍產生的原因 原因一 如果熟悉顯示卡原理的話,呼叫gdi函式向螢幕輸出的時候並不是立刻就顯示在螢幕上只是寫到了視訊記憶體裡,而顯示卡每隔一段時間把視訊記憶體的內容輸出到螢幕...