提示框的问题 各个大虾! 现在有个slider滑动框控件,取值范围是1-100,我想要做一个在我拖动slider控件,能够在在鼠标右上角显示所拖动的进度值!如何实现? 谢谢了。有相关的提示代码最好。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 响应鼠标的移动消息 得到鼠标位置响应 TB_THUMBTRACK 消息得到slider值显示就可以了。 这个能在鼠标的下面显示提示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上移动的时候也能提示 建立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);} 如果不是必须的,最好还是在Slider边上用个Static显示就可以.按你早上说的我做了个演示程序连源码到下面地址去下载.http://download.csdn.net/schlafenhamster 头大 搞了一天了所有分都在这了【 error C2248: “CObject::CObject”: 无法访问 private 成员(在“CObject”类中声】 使用installshield打包MIS,安装完后,点击桌面图标,无法登录系统? checkBox的隐藏与显示 菜鸟问题~~关于强制类型转换 slider增加位图 怎样以最小化的方式 启动Dll中的窗体 2003的ddk支持vs6么 我重载OnEraseBkgnd,在函数里用NULL_BRUSH画一个客房区大的矩形,然后有个问题。 菜单问题 奇怪的现象!帮帮忙! 模板问题 获取LIST CONTROL的Item索引的奇怪问题
响应 TB_THUMBTRACK 消息得到slider值显示就可以了。
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上移动的时候也能提示
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);
}