Slider工具條應用總結

來源:互聯網
上載者:User

1.如何控制slider:

應用程式可以調用滑塊控制項 (Slider Control) 的成員函數來檢索有關滑塊控制項 (Slider Control) (CSliderCtrl) 的資訊並更改它的特徵。

若要檢索滑塊的位置(即,使用者已選擇的值),請使用(GetPos 成員函數。若要設定滑塊的位置,請使用
SetPos 成員函數。在任何時候都可以用
VerifyPos 成員函數來確保滑塊位於最小值和最大值之間。

滑塊控制項 (Slider Control) 的範圍為滑塊控制項 (Slider Control) 能夠表示的連續數值集。第一次建立滑塊控制項 (Slider Control) 後,大多數應用程式用
SetRange 成員函數設定滑塊控制項 (Slider Control) 的範圍。在用
SetRangeMax 和 SetRangeMin 成員函數建立滑塊控制項 (Slider Control) 後,應用程式可以動態改變滑塊控制項 (Slider Control) 的範圍。允許動態更改範圍的應用程式一般在使用者處理完滑塊控制項 (Slider Control) 後檢索最後的範圍設定。若要檢索這些設定,請使用
GetRange、GetRangeMax 和
GetRangeMin 成員函數。

 

 

         m_SliderA.SetRange(0, 255);m_SliderB.SetRange(0,255);m_nPosA = 120;m_nPosB=255;UpdateData(FALSE);

 

2 如何用響應slider的改變:

滑塊控制項 (Slider Control) 通過向父視窗發送 WM_HSCROLLWM_VSCROLL 訊息(取決於滑塊控制項 (Slider Control) 的方向),將使用者操作通知其父視窗。若要處理這些訊息,請將
WM_HSCROLLWM_VSCROLL 訊息的處理常式添加到父視窗。將向
OnHScroll 和 OnVScroll 成員函數傳遞通知代碼、滑塊的位置和指向
CSliderCtrl 對象的指標。注意指標的類型為 CScrollBar *,即使它指向
CSliderCtrl 對象。若要操作滑塊控制項 (Slider Control),可能需要轉換該指標的類型。

滑塊控制項 (Slider Control) 不是使用捲軸通知代碼,而是發送不同的通知代碼集。只有當使用者使用鍵盤與滑塊控制項 (Slider Control) 互動時,滑塊控制項 (Slider Control) 才發送
TB_BOTTOMTB_LINEDOWNTB_LINEUP
TB_TOP 通知代碼。只有當使用者使用滑鼠時才發送 TB_THUMBPOSITION
TB_THUMBTRACK
通知訊息。在兩種情況下都發送 TB_ENDTRACKTB_PAGEDOWN
TB_PAGEUP 通知代碼。

下表列出了滑塊控制項 (Slider Control) 通知訊息和導致發送通知的事件(虛鍵控代碼和滑鼠事件)。(有關標準虛鍵控代碼的列表,請參見 Winuser.h。)

通知訊息 導致發送通知的事件
TB_BOTTOM VK_END
TB_ENDTRACK WM_KEYUP(使用者釋放了發送相關虛鍵控代碼的鍵)
TB_LINEDOWN VK_RIGHTVK_DOWN
TB_LINEUP VK_LEFTVK_UP
TB_PAGEDOWN VK_NEXT(使用者單擊了滑塊下面或右邊的通道)
TB_PAGEUP VK_PRIOR(使用者單擊了滑塊上面或左邊的通道)
TB_THUMBPOSITION WM_LBUTTONUPTB_THUMBTRACK 通知訊息之後
TB_THUMBTRACK 滑塊移動(使用者拖動了滑塊)
TB_TOP VK_HOME
執行個體如下:

void CThresholdDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar){ UpdateData(TRUE);

 if (pScrollBar == GetDlgItem(IDC_SLIDERA)) //擷取slider的指標;  m_nA = m_nPosA;      //改變編輯框A的數值; else  m_nB = m_nPosB;      //改變編輯框B的數值;    //refresh(); UpdateData(FALSE); refresh();

 CDialog::OnHScroll(nSBCode, nPos, pScrollBar);}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.