大侠,我在一个带水平滑动条的cformview(名字是CRightView)上放置了一个csliderctr控件IDC_SLIDER1,用来控制控制数值变化。所以使用了OnHScroll函数。奇怪的是,一拖动cformview的水平滑动条,系统就报错,估计是cformview的水平滑动条引起,苦苦思索不知如何解决,请大侠指导。简单代码如下:
void CRightView::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
   CSliderCtrl*   pSlide=(CSliderCtrl*   )pScrollBar;
   if(pSlider->GetDlgCtrlId()==IDC_SLIDER1)//调试时,光标走到这一行就会报错,百思不得其解。
   {
     CMainFrame* pFrame = (CMainFrame*)AfxGetMainWnd();
     pFrame->m_SliderValue = (int)pSlider->GetPos();
   }
}
请大侠指导,非常感谢!

解决方案 »

  1.   

    如果只有一个 滑动条 控件,那把 if 语句去掉,你要内容就行:
    if(pSlider->GetDlgCtrlId()==IDC_SLIDER1)//
      

  2.   

    问题自己已经解决,呵呵,
    代码修改如下即可。
    void CRightView::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 

       CWnd*   pSldCtrl = GetDlgItem(IDC_SLIDER1);   
       if(pScrollBar==pSldCtrl)

         CSliderCtrl*   pSlide=(CSliderCtrl*   )pScrollBar; 
         CMainFrame* pFrame = (CMainFrame*)AfxGetMainWnd(); 
         pFrame->m_SliderValue = (int)pSlider->GetPos(); 
       }