進度條控制項
使用進度條顯示操作進度:
進度條控制項封裝在cprogressctrl類中。
1、setrange和setrange32方法用來設定進度條顯示範圍。
語法格式:
void setrange(short nlower, short nupper);
void setrange32(int nlower, int nupper);
nlower:最小值,預設0;
nupper:最大值。
setrange方法設定進度條範圍在短整型範圍,setrange32可在整數範圍。
2、設定進度條進度:setpos方法
int setpos(int npos);
npos:表示設定的新進度。返回值為之前的進度。
3、獲得進度條進度:getpos方法
int getpos();
返回值為當前顯示進度。
示例:靜態文字控制項變數:cstatic m_number;
進度條控制項變數:cprogressctrl m_progress;
按鈕單擊事件:onstart
void cprogressdemodlg::onstart()
const int nmaxvalue = 99999;
m_progress.setrange32(0,nmaxvalue);
for(int i = 0; im_progress.setpos(i);
char sznumber[20] = ;
itoa(i, sznumber, 10);
m_number.setwindowtext(sznumber);
注:itoa方法:將整數轉化為字串
第三個引數:表示進製。(上例為十進位制)
滑塊控制項:
與進度條控制項使用類似:
setrange設定範圍
setpos設定進度
getpos獲得當前進度
使用示例:
關聯變數:cstatic m_area;
文字框控制項關聯變數:
uint m_nrvalue;
uint m_ngvalue;
uint m_nbvalue;
進度條控制項關聯變數:
csliderctrl m_rslider;
csliderctrl m_gslider;
csliderctrl m_bslider;
1、為對話方塊類新增成員變數:colorref m_ccolor;
2、對話方塊初始化時:
m_rslider.setrange(0,255);
m_gslider.setrange(0,255);
m_bslider.setrange(0,255);
m_ccolor = rgb(0,0,0);
3、為對話方塊類新增wm_hscroll訊息響應函式,進度條滑動時就會響應。
(若是豎直進度條,則新增wm_vscroll響應函式)
void cpickcolordlg::onhscroll(uint nsbcode, uint npos, cscrollbar* pscrollbar)
if (nsbcode == sb_thumbtrack)
if (pscrollbar->m_hwnd == m_rslider.m_hwnd)
m_nrvalue = npos;
updatedata(false);
if (pscrollbar->m_hwnd == m_gslider.m_hwnd)
m_ngvalue = npos;
updatedata(false);
if (pscrollbar->m_hwnd == m_bslider.m_hwnd)
m_nbvalue = npos;
updatedata(false);
m_clcolor = rgb(m_nrvalue, m_ngvalue, m_nbvalue);
updatearea();
cdialog::onhscroll(nsbcode, npos, pscrollbar);
4、上面提到的updatearea()函式,用於更新控制項區域的顏色顯示
需要在對話方塊類中新增成員函式:
public: void updatearea()
**如下:
void cpickcolordlg::updatearea()
cdc* pdc = m_area.getdc();
crect clientrc;
m_area.getclientrect(clientrc);
pdc->fillrect(clientrc,&cbrush(m_ccolor));
m_area.releasedc(pdc);
5、onpaint()中也要新增updatearea();
6、為文字框控制項新增en_change訊息響應函式。(當更改文字框內容時,滑塊和picture控制項要做出相應響應)
**如下:
void cpickcolordlg::onchangebvalue()
updatedata(true);
m_bslider.setpos(m_nbvalue);
updatearea();
void cpickcolordlg::onchangervalue()
updatedata(true);
m_rslider.setpos(m_nrvalue);
updatearea();
void cpickcolordlg::onchangegvalue()
updatedata(true);
m_gslider.setpos(m_ngvalue);
updatearea();
MFC控制項(三)(進度條控制項和滑塊控制項)
進度條控制項 使用進度條顯示操作進度 進度條控制項封裝在cprogressctrl類中。1 setrange和setrange32方法用來設定進度條顯示範圍。語法格式 void setrange short nlower,short nupper void setrange32 int nlower...
MFC控制項之進度條
這個是手工活,不多說。vs2008和vs2005可能沒有這個函式,需要手動新增,如果你不會新增,看看這裡吧。一般初始化就是設定控制項的範圍之類的。bool progressys oninitdialog void 例如本例是在按鈕新增的響應 void progressys onbnclickedbu...
進度條控制項
base.dispose disposing region windows 窗體設計器生成的 設計器支援所需的方法 不要 使用 編輯器修改此方法的內容。private void initializecomponent this.progressbar1 new system.windows.form...