首先用應用嚮導產生一名為scro
的基於對話方塊的應用,再利用對話方塊編輯器加入兩個一樣的水平滾動條,兩個滾動條的
id分別取
idc—scr1
和idc—scr2
,結果如下圖,將其作為本文的示例。
對話方塊編輯器雖然允許將滾動條控制項加進對話方塊中,而且,類嚮導允許加入資料成員,但要使這兩個水平滾動條工作,還必須加進一些**。就本例程式,當使用者拖動滾動塊或用滑鼠滾動箭頭時,滾動條就會向對話方塊傳送wm_hscroll
訊息,對話方塊訊息控制函式必須對這一訊息進行處理,然後將滾動塊定位到相應的位置上。
一般情況下,對話方塊中的每一控制項都有自己獨立的訊息控制函式,但滾動條控制項則有點不同,因為對話方塊中所有的水平滾動條都只有乙個wm_hscroll
訊息控制函式,而所有的垂直滾動條都只有乙個wm_hscroll
訊息控制函式。如果對話方塊中只有乙個水平(或垂直)滾動條,則不會出現什麼問題,問題是本例程式有一特殊之處,筆者有意設定了兩個水平滾動條,可按前述都用乙個wm_hscroll
訊息控制函式,所以程式必須能識別出哪個滾動條在傳送訊息。下面是具體步驟。
1.定義滾動範圍的最大值和最小值。
在scrodlg.h
類宣告中的最上面加入下面兩行。
enum ;2.修改enum ;
oninitdialog
函式,初始化滾動範圍,決定那乙個滾動條傳送訊息。
//3.利用todo: add extra initialization here
cscrollbar* psb =(cscrollbar*) getdlgitem(idc—scr1);
psb-〉setscrollrange(nmin, nmax);
psb =(cscrollbar*) getdlgitem(idc_scr2);
psb-〉setscrollrange(nmin, nmax);
classwizard
在cscrodlg
中加入滾動條訊息控制函式,即選擇
wm—hscroll
訊息,然後加進
onhscroll
成員函式,並在其中加入如下**:
void cscrodlg::onhscroll(uint nsbcode, uint4.現在可以編譯、測試程式了。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);}
滾動條控制項
滾動條通常用於瀏覽顯示內容 確定位置,也可以作為資料輸入的工具。滾動條分為水平滾動條 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...