解決C 控制項在IE中使用時的閃爍問題

2022-04-30 18:57:06 字數 570 閱讀 6407

以下**為引用,從網上找的。謝謝原作者。

最近對**作了一些優化,試驗後效果還可以,但是發現介面會閃爍,具體是treeview控制項會閃爍,語言為c#,ide為vs2005。在查閱一些資料,使用了一些基本技術後(如開啟雙緩衝),發現沒什麼效果。

於是使用profiler工具,查詢出瓶頸在於每次更新完介面的endupdate操作(使用這個是為了減少介面更新次數,但這裡不理想是因為控制項中中的元素很多),猜想大概每次更新,.net底層都會更新重繪每個圖元,所以速度會慢,造成閃爍。但是如果這樣,使用雙緩衝應該會有較好效果。再看**,發現可能是更新動作太過頻繁,於是降低速度,有所好轉,但還是不行。

繼續在網上查閱,最終找到乙個方案比較合適。原來底層重繪每次會清除畫布,然後再全部重新繪製,這才是導致閃爍最主要的原因。於是過載訊息傳送函式操作,禁掉這條訊息。**如下:

protected override void wndproc(ref message m)

成功!注:雙緩衝還是有用的,在更新不是很頻繁且控制項內含元素不是特別多的時候。一旦元素過多,每次更新時間都比較長,即便使用了雙緩衝,仍解決不了閃爍問題。個人認為最終比較理想的方法還是禁掉清除背景訊息。

C 解決動態新增控制項時,控制項閃爍的問題

近段時間一直用c 來做開發,但是c 控制項太多或者動態新增的控制項,控制項一直一閃一閃的,始終不知道什麼問題。各種度娘,沒去谷哥,因為上不去,你懂得。翻遍了很多資料,都在說雙快取,還有什麼什麼的,各種 嘗試無效,之後看到csdn乙個帖子,看完之後發現這一段 真的解決了閃爍的問題!原理我還沒看,先記錄...

MySQL在VC中使用時出現的問題

1 出現以下 debug 資訊時 testnewsql.obj error lnk2001 unresolved external symbol mysql close 4 testnewsql.obj error lnk2001 unresolved external symbol mysql s...

在C 中使用屬性控制項新增屬性視窗

原文 在c 中使用屬性控制項新增屬性視窗 第一步,建立在應用程式中將要展現的字段屬性為public公有屬性。其中,所有的屬性必須有get和set的方法 如果不設定get方法,則要顯示的屬性不會顯示在屬性控制項中 為了設定相關的屬性,必須設定下面的一些關於屬性控制項的屬性值,如下表所示 屬性值含義 c...