程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> 關於VC++ >> VC++中實現滑動控件

VC++中實現滑動控件

編輯:關於VC++

滑動控件是Windows中最常用的控件之一。一般而言它是由一個滑動條,一個滑塊和可選的刻度組成,用戶可以通過移動滑塊在相應的控件中顯示對應的值。通常,在滑動控件附近一定有標簽控件或編輯框控件,用於顯示相應的值。滑動控件在應用程序中用途級為廣泛,如在桌面的屬性中就可以看到。為此,讓我們一起來看一下它的實現方法。

(1)在VC++ 6.0中新建一個對話框文檔的工程。

(2)打開資源管理器,在對話框中放置一個EDIT控件,然後在它旁邊放上一個Slider控件。基本的框架已經完成了。

(3)對Slider控件右擊,選擇“建立類向導”,對剛才的Slider控件定義一個變量m_Slider,類型為CSliderCtrl。

(4)在對話框初始化的代碼BOOL CMy601Dlg::OnInitDialog(),後添加相應的屬性。以下是常用的屬性設置函數:

* GetRange,SetRange函數

用於查詢和設置滑動條的取值范圍,默認為0~100。函數定義形式如下:

void GetRange(int &nMin,int &nMax) const;

void SetRange(int nMin,int nMax,BOOL bRedrGETaw=FALSE);

* GetPos,SetPos函數

用於查詢和設置滑動條的當前值。函數定義形式如下:

int GetPos() const;

int SetPos(int nPos);

* GetLineSize,SetLineSize函數

用於查詢和設置在按一下右或左箭頭時滑塊的移動量,默認為1個單位。函數定義形式如下:

int GetLineSize() const;

int SetLineSize(int nSize);

* GetPageSize,SetPageSize函數

用於查詢和設置函滑塊和塊移動量,塊移動量是指當按下PgUp或PgDown時滑塊的移動量。函數定 義形式如下:

int GetPageSize() const;

int SetPageSize(int nSize);

* SetTicFreq函數

用於設置滑動條刻度的頻度。默認為一個單位一個函數。函數定義形式如下:

void SetTicFreq(int nFreq);

* SetTic函數

用於在指定的位置設置刻度。Windows默認的刻度是均勻的。函數定義形式如下:

BOOL SetTic(int nTic);

* ClearTics函數

用於清除所有的刻度。函數定義形式如下:

void ClearTics(BOOL bRedraw=FALSE);

我們在初始化時寫入以下語句:

m_Slider.SetRange(-100,100);
m_Slider.SetTicFreq(10);

即:設置范圍為-100到100,刻度為每10個單位一個。

(5)現在我們加入事件過程代碼。

選擇Slider的“事件”然後選擇第一個過程(NM_CUSTOMDRAW)隨後加入以下代碼:

void CMy601Dlg::OnCustomdrawSlider1(NMHDR* pNMHDR, LRESULT* pResult)
{
UpdateData(TRUE);
m_Int=m_Slider.GetPos();
UpdateData(FALSE);
*pResult = 0;
}

其中m_Int是定義的EDIT控件的類型為INT的變量。至此我們的編輯工作結束了。

(6)編譯運行程序試試吧,很方便就使用了Slider 控件。

以上代碼在Windows2000,VC++ 6.0/VC++.net上調試通過。

以上代碼倉促完成,如有錯誤之處,敬請轉告。如有其它見解,歡迎前來討論。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved