?? vc++中輕松實(shí)現(xiàn)滑動(dòng)控件.txt
字號(hào):
滑動(dòng)控件是Windows中最常用的控件之一。一般而言它是由一個(gè)滑動(dòng)條,一個(gè)滑塊和可選的刻度組成,用戶可以通過移動(dòng)滑塊在相應(yīng)的控件中顯示對(duì)應(yīng)的值。通常,在滑動(dòng)控件附近一定有標(biāo)簽控件或編輯框控件,用于顯示相應(yīng)的值。滑動(dòng)控件在應(yīng)用程序中用途級(jí)為廣泛,如在桌面的屬性中就可以看到。為此,讓我們一起來看一下它的實(shí)現(xiàn)方法。
(1)在VC++ 6.0中新建一個(gè)對(duì)話框文檔的工程。
(2)打開資源管理器,在對(duì)話框中放置一個(gè)EDIT控件,然后在它旁邊放上一個(gè)Slider控件。基本的框架已經(jīng)完成了。
(3)對(duì)Slider控件右擊,選擇“建立類向?qū)А保瑢?duì)剛才的Slider控件定義一個(gè)變量m_Slider,類型為CSliderCtrl。
(4)在對(duì)話框初始化的代碼BOOL CMy601Dlg::OnInitDialog(),后添加相應(yīng)的屬性。以下是常用的屬性設(shè)置函數(shù):
* GetRange,SetRange函數(shù)
用于查詢和設(shè)置滑動(dòng)條的取值范圍,默認(rèn)為0~100。函數(shù)定義形式如下:
void GetRange(int &nMin,int &nMax) const;
void SetRange(int nMin,int nMax,BOOL bRedrGETaw=FALSE);
* GetPos,SetPos函數(shù)
用于查詢和設(shè)置滑動(dòng)條的當(dāng)前值。函數(shù)定義形式如下:
int GetPos() const;
int SetPos(int nPos);
* GetLineSize,SetLineSize函數(shù)
用于查詢和設(shè)置在按一下右或左箭頭時(shí)滑塊的移動(dòng)量,默認(rèn)為1個(gè)單位。函數(shù)定義形式如下:
int GetLineSize() const;
int SetLineSize(int nSize);
* GetPageSize,SetPageSize函數(shù)
用于查詢和設(shè)置函滑塊和塊移動(dòng)量,塊移動(dòng)量是指當(dāng)按下PgUp或PgDown時(shí)滑塊的移動(dòng)量。函數(shù)定 義形式如下:
int GetPageSize() const;
int SetPageSize(int nSize);
* SetTicFreq函數(shù)
用于設(shè)置滑動(dòng)條刻度的頻度。默認(rèn)為一個(gè)單位一個(gè)函數(shù)。函數(shù)定義形式如下:
void SetTicFreq(int nFreq);
* SetTic函數(shù)
用于在指定的位置設(shè)置刻度。Windows默認(rèn)的刻度是均勻的。函數(shù)定義形式如下:
BOOL SetTic(int nTic);
* ClearTics函數(shù)
用于清除所有的刻度。函數(shù)定義形式如下:
void ClearTics(BOOL bRedraw=FALSE);
我們?cè)诔跏蓟瘯r(shí)寫入以下語句:
m_Slider.SetRange(-100,100);
m_Slider.SetTicFreq(10);
即:設(shè)置范圍為-100到100,刻度為每10個(gè)單位一個(gè)。
(5)現(xiàn)在我們加入事件過程代碼。
選擇Slider的“事件”然后選擇第一個(gè)過程(NM_CUSTOMDRAW)隨后加入以下代碼:
void CMy601Dlg::OnCustomdrawSlider1(NMHDR* pNMHDR, LRESULT* pResult)
{
UpdateData(TRUE);
m_Int=m_Slider.GetPos();
UpdateData(FALSE);
*pResult = 0;
}
其中m_Int是定義的EDIT控件的類型為INT的變量。至此我們的編輯工作結(jié)束了。
(6)編譯運(yùn)行程序試試吧,很方便就使用了Slider 控件。
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -