vc 進度條控制項 一

2022-05-02 06:48:08 字數 1954 閱讀 2621

方法1:

單執行緒方式。

將你的任務分成多個部分,每執行一部分,就更新一下進度條。

這種方法就是很煩人。

方法2:

雙線程方式。

主線程負責完成你想要的工作。副執行緒負責更新進度條。

更新進度條可以按照計時方法,或者根據主線程完成任務的狀態來更新。

因此,你的主線程在完成任務時,還得用乙個臨界區隨時報告任務的完成狀態。

方法3:

雙線程方式

主線程負責更新進度條,並且建立副執行緒完成任務的某部分工作。但這和單執行緒很像。

圖一 例子效果

玩過破天的朋友知道,遊戲更新時進度是用位圖表示的,我覺的挺漂亮的,於是自己動手做了乙個類來實現那種效果。

這個類的名字叫cbmpprogctrl,繼承於cstatic,使用方法如下。

1、首先要將bmpprogctrl.h和bmpprogctrl.cpp新增到工程中。

2、匯入兩幅位圖,作為前景和背景。資源標識分別為idb_fore和idb_back.

3、在對話方塊上,放置乙個"static text"控制項,修改其id,只要不是預設的idc_static就可以了。

4、讓這個控制項和乙個control型別的變數關聯,如變數名可以叫m_bmpprog。

5、找到該變數定義的地方,應該是cstatic m_bmpprog,修改cstatic為cbmpprogctrl。並將標頭檔案bmpprogctrl.h包含進來。

6、呼叫該類的方法。

類成員方法介紹

void getrange(int &lower,int &upper)返回進度條範圍。

int getpos()獲得當前位置

int stepit( )以當前步長使進度條增長

int setstep( int nstep )設定步長

int setpos( int npos )設定位置

void setrange( int nlower, int nupper )設定進度條範圍。

具體的可以看源**。你可以修改它以符合自己的需要。你可能覺的這些方法很熟悉,是的,我參考了cprogressctrl的方法名。

結束語

這個東西,比較簡單,你可以很容易就使用。

在vc裡想改變進度條顏色,在網上找了很多方法,都很麻煩,覺得很鬱悶。後來想起在用vb做時,增經用api實現過,很簡單。後來再一查,原來是sendmessage這個函式,幾經試驗,終於成功,高興,與大家分享!!!!

**如下:    

m_progress1.sendmessage(pbm_setbkcolor, 0, rgb(0, 0, 255));//背景色為藍色

m_progress1.sendmessage(pbm_setbarcolor, 0, rgb(255, 0, 0));//前景色為紅色

以下摘自《新編win32api大全》:

以下摘自msdn:

rgb(red, green, blue)

arguments

redrequired. number in the range 0-255 representing the red component of the color.

green

required. number in the range 0-255 representing the green component of the color.

blue

required. number in the range 0-255 representing the blue component of the color.

二、去掉進度條邊框

m_progress1.modifystyleex(ws_ex_staticedge,0);

m_progress.invalidate(false);

進度條控制項

base.dispose disposing region windows 窗體設計器生成的 設計器支援所需的方法 不要 使用 編輯器修改此方法的內容。private void initializecomponent this.progressbar1 new system.windows.form...

進度條控制項

當我們在做乙個大大小小的專案的時候,可能會遇到顯示乙個進度或百分比的問題,如果只用乙個數字表示給客戶帶來的是很死板的感覺。如果用乙個進度條來表示就會使客戶一目了然了,還很形象。下面是我的進度條控制項 7toolboxdata hbprocessbar 8public class hbprocessb...

控制項 CProgressCtrl 進度條

進度條控制項 使用進度條顯示操作進度 進度條控制項封裝在cprogressctrl類中。1 setrange和setrange32方法用來設定進度條顯示範圍。語法格式 void setrange short nlower,short nupper void setrange32 int nlower...