用vc 做滾動條控制項

2022-02-06 00:20:47 字數 1657 閱讀 7509

首先用應用嚮導產生一名為scro

的基於對話方塊的應用,再利用對話方塊編輯器加入兩個一樣的水平滾動條,兩個滾動條的

id分別取

idc—scr1

和idc—scr2

,結果如下圖,將其作為本文的示例。

對話方塊編輯器雖然允許將滾動條控制項加進對話方塊中,而且,類嚮導允許加入資料成員,但要使這兩個水平滾動條工作,還必須加進一些**。就本例程式,當使用者拖動滾動塊或用滑鼠滾動箭頭時,滾動條就會向對話方塊傳送wm_hscroll

訊息,對話方塊訊息控制函式必須對這一訊息進行處理,然後將滾動塊定位到相應的位置上。

一般情況下,對話方塊中的每一控制項都有自己獨立的訊息控制函式,但滾動條控制項則有點不同,因為對話方塊中所有的水平滾動條都只有乙個wm_hscroll

訊息控制函式,而所有的垂直滾動條都只有乙個wm_hscroll

訊息控制函式。如果對話方塊中只有乙個水平(或垂直)滾動條,則不會出現什麼問題,問題是本例程式有一特殊之處,筆者有意設定了兩個水平滾動條,可按前述都用乙個wm_hscroll

訊息控制函式,所以程式必須能識別出哪個滾動條在傳送訊息。下面是具體步驟。

1.定義滾動範圍的最大值和最小值。

在scrodlg.h

類宣告中的最上面加入下面兩行。

enum ;

enum ;

2.修改

oninitdialog

函式,初始化滾動範圍,決定那乙個滾動條傳送訊息。

//

todo: add extra initialization here

cscrollbar* psb =(cscrollbar*) getdlgitem(idc—scr1);

psb-〉setscrollrange(nmin, nmax);

psb =(cscrollbar*) getdlgitem(idc_scr2);

psb-〉setscrollrange(nmin, nmax);

3.利用

classwizard

在cscrodlg

中加入滾動條訊息控制函式,即選擇

wm—hscroll

訊息,然後加進

onhscroll

成員函式,並在其中加入如下**:

void cscrodlg::onhscroll(uint nsbcode, uint

npos, cscrollbar* pscrollbar)

else

pscrollbar-〉setscrollpos(ntemp1);

break

;      

case sb—lineright: //

右箭頭按鈕

ntemp2 = (nmax - nmin) / 10

;         

if ((ntemp1 + ntemp2) 〈 nmax)

else

pscrollbar-〉setscrollpos(ntemp1);

break; }

cdialog::onhscroll(nsbcode, npos, pscrollbar);}

4.現在可以編譯、測試程式了。

滾動條控制項

滾動條通常用於瀏覽顯示內容 確定位置,也可以作為資料輸入的工具。滾動條分為水平滾動條 hscrollbar horizontal scrollbar 和垂直滾動條 vscrollbar vertical scrollbar 當滾動條位於最左端或頂端時,表示其值最小,反之為最大。滾動條常用事件 cha...

滾動條控制項ProgressBarControl使用

最小值 progressbarcontrol1.properties.minimum 0 最大值 progressbarcontrol1.properties.maximum 100 設定步長,即每次增加的數 progressbarcontrol1.properties.step 1 設定進度條的樣...

WPF WebBrowser控制項去除滾動條

方法一 適用於vs2008 1 在解決方案中新增 引用 選擇 com 下的 microsoft html object library 2 引入命名空間 using mshtml 3 新增webbrowser事件 在 webbrowser 的 loadcompleted 事件裡 mshtml.htm...