各个大虾! 现在有个slider滑动框控件,取值范围是1-100,我想要做一个在我拖动slider控件,能够在在鼠标右上角显示所拖动的进度值!如何实现? 谢谢了。有相关的提示代码最好。

解决方案 »

  1.   

    响应鼠标的移动消息 得到鼠标位置
    响应 TB_THUMBTRACK 消息得到slider值显示就可以了。
      

  2.   

    这个能在鼠标的下面显示提示
    CSliderCtrl m_Slider;//滑动框控件
    CToolTipCtrl m_Tip;//Tip控件
    CWnd *m_pTarget;//存储滑动框控件窗口指针
    OnInitDialog()代码 m_pTarget = GetDlgItem(IDC_SLIDER);
    m_Tip.Create(m_pTarget , TTS_ALWAYSTIP);
    m_Tip.AddTool(m_pTarget);
    m_Tip.SetDelayTime(100);
    m_Tip.SetTipBkColor(RGB(0, 0 , 255));PreTranslateMessage(MSG* pMsg)代码if(m_Tip.m_hWnd)
    m_Tip.RelayEvent(pMsg);OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 代码 CString str;
    str.Format("%d" , nPos);
    m_Tip.UpdateTipText(str, m_pTarget);
    其实还可以再给slider创建个类,在类里重载WM_MOUSEMOVE消息,以便能在鼠标在slider上移动的时候也能提示
      

  3.   

    建立MySlider类, 响应鼠标移动 
    void CMySlider::OnMouseMove(UINT nFlags, CPoint point) 
    {
    // TODO: Add your message handler code here and/or call default
    m_MouseNow=point;
    CSliderDlg *  pParentWnd;  int width=100,height=8;
    CRect EditRc; pParentWnd=(CSliderDlg *)GetParent();
    pParentWnd->m_ToolTip.GetClientRect(&EditRc);
    CString x;
    x.Format("%d",GetPos());//当前Slider位置.
    pParentWnd->m_ToolTip.SetWindowText(x);
    pParentWnd->m_ToolTip.EnableWindow();

    pParentWnd->m_ToolTip.MoveWindow(m_MouseNow.x+50,m_MouseNow.y+20,EditRc.Width(),EditRc.Height());//编辑框具体位置,可以自己设定 CSliderCtrl::OnMouseMove(nFlags, point);
    }
      

  4.   

    如果不是必须的,最好还是在Slider边上用个Static显示就可以.按你早上说的我做了个演示程序连源码到下面地址去下载.http://download.csdn.net/schlafenhamster