mfc中滑動條的使用(實現和編輯框的關聯)

2021-05-21 17:49:41 字數 1828 閱讀 7945

滑動控制項是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)隨後加入以下**:(即增加 slider事件的訊息響應函式nm_customdraw)

void cmy601dlg::oncustomdrawslider1(nmhdr* pnmhdr, lresult* presult)

其中m_int是定義的edit控制項的型別為int的變數。至此我們的編輯工作結束了。

(6)編譯執行程式試試吧,很方便就使用了slider 控制項。

mfc中滑動條的使用

滑動控制項是windows中最常用的控制項之一。一般而言它是由乙個滑動條,乙個滑塊和可選的刻度組成,使用者可以通過移動滑塊在相應的控制項中顯示對應的值。通常,在滑動控制項附近一定有標籤控制項或編輯框控制項,用於顯示相應的值。滑動控制項在應用程式中用途級為廣泛,如在桌面的屬性中就可以看到。為此,讓我們...

MFC滑動條結合編輯框使用

1.新增slidercontrol控制項,新增乙個編輯框 2.為其新增變數m slider control型別 m edit int型 3.在oninitdialog中新增 m slider.setrange 1,100 設定範圍 m slider.setticfreq 1 設定步長 m slide...

MFC控制項之滑動條 slider的簡單使用

1,將控制項slider control拖放到對話方塊中 2為slider control新增control型變數m slider 3,使用類嚮導,給對話方塊類新增 虛函式 oninitdialog 4,在cmyimagge.cpp中,對oninitdialog 函式進行編寫 cmyimage 訊息...