MFC進度條指示器的製作

2021-09-30 15:25:41 字數 745 閱讀 2957

標準的進度條控制項是不帶指示器的,也沒用函式供我們去實現。我們看到的有些進度條指示器是在進度條控制項中放置乙個靜態文字控制項而製成的。

具體實現方法如下:

1,處理當前視窗的反射訊息wm_ctlcolor,即新增hbrush onctlcolor(cdc *pdc, cwnd *pwnd, uint nctlcolor)這個訊息對映函式。注意,不是hbrush ctlcolor(cdc *pdc, uint nctlcolor)!

具體實現**如下:

hbrush ctest2dlg(當前對話方塊類名)::onctlcolor(cdc* pdc, cwnd* pwnd, uint nctlcolor)

// todo: 如果預設的不是所需畫筆,則返回另乙個畫筆

return hbr;

}至此,靜態檔案控制項的背景已設為透明,但是當你除錯時會發現,靜態文字顯示的控制項還存在乙個問題,當該static控制項的文字內容或者屬性,在執行過程中發生變化的時候,由於背景一直沒有擦除(為了實現透明),會出現重影,導致文字模糊成一團。

解決方法是,讓控制項所屬父視窗進行重繪更新或讓控制項重繪。由於gdi並不內嵌雙緩衝,讓整個視窗重繪會導致視窗的頻繁的嚴重的閃爍,不可取,於是採用控制項重繪。只讓父視窗重繪控制項所佔的部分,其他部分不進行重繪,**如下:

以下**可寫在你顯示進度值的函式裡

這裡解決了重影問題,至此問題全部解決。在處理重影的時候還有很多方法,目的都是使控制項所在區域重繪,這個依具體設計而定。

綜上就可得到乙個自製的進度條指示器了

進度指示器

uiprogressview 進度指示器 uiprogressview 與uiactivityindicatorview 相似,只不過它提供了乙個介面讓你可以顯示乙個類似進度條的東西,這樣就能讓使用者知道當前操作完成了多少 告知使用者離操作結束還多遠 一.建立 uiprogressview prog...

Shell中的進度指示器

相信大家做shell指令碼時,經常遇到耗費時間的問題,這時如果有乙個進度指示器豈不更好,這在其他語言中很容易就實現了,在shell裡也不難,看下邊的幾種方法 1 使用一系列圓點來指示進度 利用每隔幾秒就列印乙個點來指示,看原始碼 bin ksh while true do echo n sleep ...

進度條的製作

在loading介面切換的時候,不僅需要用到非同步載入,更需要用進度條來表示切換的進度。今天我就來介紹一下,何如製作 音之國度 中的過渡頁面進度條。首先,我們當然先需要得到乙個進度條 滑稽 製作乙個進度條有兩種比較簡單的方法。1 在ngui中,已經存在progressbar的預設體,所以求省事的同學...