CSliderCtrl的各种消息总结

CSliderCtrl本身的一些消息没有这个好用,一般可以通过在对话框上直接添加OnHScroll,通过参数判断CSliderCtrl,然后判断响应相关消息;


当用户拖拽滑块、点击滑块、按↑↓←→键、按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:

测试代码:

  1. void CCVTestDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)  
  2. {  
  3.     // TODO: 在此添加消息处理程序代码和/或调用默认值  
  4.     int Brightness = ((CSliderCtrl*)GetDlgItem(IDC_SLIDER1))->GetPos();//def :128  
  5.     int Contrast = ((CSliderCtrl*)GetDlgItem(IDC_SLIDER2))->GetPos();//def :64  
  6.     int Saturation = ((CSliderCtrl*)GetDlgItem(IDC_SLIDER3))->GetPos();//def :64  
  7.     int Hue = ((CSliderCtrl*)GetDlgItem(IDC_SLIDER4))->GetPos();//def :0  
  8.     CString str;  
  9.     if(GetDlgItem(IDC_SLIDER1) == pScrollBar)  
  10.     {  
  11.         //MessageBox(L"Slider1");  
  12.         switch(nSBCode)  
  13.         {  
  14.         case SB_PAGELEFT://影响鼠标点击一次滑块或用户按下PageUp和PageDown键,滑块移动的距离,由SetPageSize决定  
  15.         case SB_PAGERIGHT:  
  16.         case SB_LEFT://用户按下Home键触发  
  17.         case SB_RIGHT://用户按下End键触发  
  18.         case SB_LINELEFT://用户按下↑↓←→键时触发  
  19.         case SB_LINERIGHT://用户按下↑↓←→键时触发  
  20.             Brightness = ((CSliderCtrl*)GetDlgItem(IDC_SLIDER1))->GetPos();  
  21.             str.Format(L"%d",Brightness);  
  22.             SetDlgItemText(IDC_BRIGHT_EDIT,str);  
  23.             SetVideoPara(ChannelHandle[3], Brightness, Contrast, Saturation, Hue);  
  24.             break;  
  25.         case SB_THUMBPOSITION://鼠标拖拽滑块并释放时触发,此时nPos有效  
  26.         case SB_THUMBTRACK://鼠标拖拽滑块时触发,此时nPos有效  
  27.             //MessageBox(L"SB_THUMBPOSITION");  
  28.             Brightness = nPos;  
  29.             str.Format(L"%d",Brightness);  
  30.             SetDlgItemText(IDC_BRIGHT_EDIT,str);  
  31.             SetVideoPara(ChannelHandle[3], Brightness, Contrast, Saturation, Hue);  
  32.             break;  
  33.         default:  
  34.             break;  
  35.         }  
  36.     }  
  37.     CDialog::OnHScroll(nSBCode, nPos, pScrollBar);  
  38. }  

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值