Mfc 中多个SliderCtrl滑动事件的捕捉

  • Post author:
  • Post category:其他
在Mfc中SliderCtrl控件直接是没有事件来获取当滑动时SliderCtrl的值,不过可以处理ON_WM_HSCROLL消息,在头文件中添加:
afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
在cpp中的消息队列映射中添加:
ON_WM_HSCROLL()
最后添加处理函数:
void CMusicPlayerDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
{
 // TODO: Add your message handler code here and/or call default
 
 if(pScrollBar != NULL )
 {
  // 强制转换成CSliderCtrl
  CSliderCtrl* pSlider = (CSliderCtrl*)pScrollBar;
  // 根据CSliderCtrl ID 来判断是哪一个CSliderCtrl
  if(pSlider->GetDlgCtrlID() == IDC_VOLUME)
  {
   long v = 10*pSlider->GetPos();
   player.SetVolume(v);
   CString ff;
   ff.Format(_T("%d"),v);
   aa.SetWindowTextW(ff);
  }
 }
}

版权声明:本文为Arcsinsin原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。