CSliderCtrl的各種訊息總結

來源:互聯網
上載者:User

當使用者拖拽滑塊、點擊滑塊、按↑↓←→鍵、按PageUp PageDown鍵、按Home End鍵時都會觸發捲軸訊息(此捲軸已經獲得焦點)。這些訊息的響應一般在父視窗的WM_HSCROLL中處理(討論水平捲軸)。下來總結下WM_HSCROLL訊息的訊息響應函數之nSBCode參數的意思。

 

函數原型:afx_msg void OnHScroll( UINT nSBCode, UINT nPos, CScrollBar* pScrollBar );

nSBCode

Specifies a scroll-bar code that indicates the user’s scrolling request. This parameter can be one of the following:

  • SB_LEFT   Scroll to far left. // 按Home鍵時觸發
  • SB_ENDSCROLL   End scroll.//結束對捲軸的控制時觸發,比如點擊捲軸,當滑鼠左鍵彈起時便叫結束控制
  • SB_LINELEFT   Scroll left.//按方向鍵時觸發
  • SB_LINERIGHT   Scroll right.//按方向鍵時觸發
  • SB_PAGELEFT   Scroll one page left.//按PageUp時或點擊滑塊左側空白處觸發
  • SB_PAGERIGHT   Scroll one page right.//按PageDown時或點擊滑塊右側空白處觸發
  • SB_RIGHT   Scroll to far right..// 按End鍵時觸發
  • SB_THUMBPOSITION   Scroll to absolute position. The current position is specified by the nPos parameter.//拖拽滑塊並釋放時觸發,此時nPos有效
  • SB_THUMBTRACK   Drag scroll box to specified position. The current position is specified by the nPos parameter.//拖拽滑塊過程中觸發,此時nPos有效

測試代碼:

void CCVTestDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)<br />{<br />// TODO: 在此添加訊息處理常式代碼和/或調用預設值<br />int Brightness = ((CSliderCtrl*)GetDlgItem(IDC_SLIDER1))->GetPos();//def :128<br />int Contrast = ((CSliderCtrl*)GetDlgItem(IDC_SLIDER2))->GetPos();//def :64<br />int Saturation = ((CSliderCtrl*)GetDlgItem(IDC_SLIDER3))->GetPos();//def :64<br />int Hue = ((CSliderCtrl*)GetDlgItem(IDC_SLIDER4))->GetPos();//def :0<br />CString str;<br />if(GetDlgItem(IDC_SLIDER1) == pScrollBar)<br />{<br />//MessageBox(L"Slider1");<br />switch(nSBCode)<br />{<br />case SB_PAGELEFT://影響滑鼠點擊一次滑塊或使用者按下PageUp和PageDown鍵,滑塊移動的距離,由SetPageSize決定<br />case SB_PAGERIGHT:<br />case SB_LEFT://使用者按下Home鍵觸發<br />case SB_RIGHT://使用者按下End鍵觸發<br />case SB_LINELEFT://使用者按下↑↓←→鍵時觸發<br />case SB_LINERIGHT://使用者按下↑↓←→鍵時觸發<br />Brightness = ((CSliderCtrl*)GetDlgItem(IDC_SLIDER1))->GetPos();<br />str.Format(L"%d",Brightness);<br />SetDlgItemText(IDC_BRIGHT_EDIT,str);<br />SetVideoPara(ChannelHandle[3], Brightness, Contrast, Saturation, Hue);<br />break;<br />case SB_THUMBPOSITION://滑鼠拖拽滑塊並釋放時觸發,此時nPos有效<br />case SB_THUMBTRACK://滑鼠拖拽滑塊時觸發,此時nPos有效<br />//MessageBox(L"SB_THUMBPOSITION");<br />Brightness = nPos;<br />str.Format(L"%d",Brightness);<br />SetDlgItemText(IDC_BRIGHT_EDIT,str);<br />SetVideoPara(ChannelHandle[3], Brightness, Contrast, Saturation, Hue);<br />break;<br />default:<br />break;<br />}<br />}<br />CDialog::OnHScroll(nSBCode, nPos, pScrollBar);<br />}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.