看文档说Slider会向父窗口发WM_HSCROLL消息,subclass没有抓到.
还有什么办法能获得Slider的当前值?

解决方案 »

  1.   

    在父窗口的OnHScroll里面是可以捕捉到Slider滑动的消息。请确定m_Slider的Parent是否是该窗口。
    Cdialog::OnHScroll(nSBCode,nPos,pScrollBar);
    CSliderCtrl *pSlidCtrl=(CSliderCtrl*)GetDlgItem(IDC_SLLIDER1);
    m_nCur=pSlidCtrl->GetPos();//取得当前位置值或者NM_CUSTOMDRAW,OnCustomdrawSlider1事件也可实时得到当前位置。。
      

  2.   

    int nPos = (int)::SendMessage(hWndSlider, TBM_GETPOS, 0, 0L);
      

  3.   

    CSliderCtrl *pSlidCtrl=(CSliderCtrl*)GetDlgItem(IDC_SLLIDER1);如果是另外一个程序,怎么相应控件的ID(IDC_SLLIDER1), 用EnumChildWindow好像不一样
      

  4.   

    滚动条可以用楼上各位提到的消息;滑块控件的话用CSliderCtrl::GetPos;另外程序的话用EnumChildWindow找到控件窗口同样用:窗口指针->GetPos