slider控件移动滑块,动态的显示tooltip方法!
来源:互联网 发布:网络电视直播在线 编辑:程序博客网 时间:2024/06/05 03:54
网页对这个的介绍也不少,但是都是转载。。都不能成功实现要求!!
本人亲自实验。。特发代码。。
第一种方法。
.h 文件
CSliderCtrl m_Slider;
CToolTipCtrl m_tooltip;
afx_msg BOOL OnToolTipNotify(UINT id,NMHDR *pNMHDR,LRESULT *pResult);
.cpp
BEGIN_MESSAGE_MAP(CCToolTipDlg, CDialog)
ON_NOTIFY_EX(TTN_NEEDTEXT,0,OnToolTipNotify) //添加消息
END_MESSAGE_MAP()
OnInitDialog()
{
m_Slider.SetRange(0,100);
m_Slider.SetPos(50);
m_tooltip.Create(GetDlgItem(IDC_SLIDER1));
m_tooltip.AddTool(GetDlgItem(IDC_SLIDER1), LPSTR_TEXTCALLBACK); //注释:红色表示tip内容可以动态改变!!
}
PreTranslateMessage(MSG* pMsg)
{
m_tooltip.RelayEvent(pMsg);
return CDialog::PreTranslateMessage(pMsg);
}
OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) //响应滑块拖动跟新
{
CSliderCtrl* pSlider=(CSliderCtrl*)pScrollBar;
int pos=pSlider->GetPos();
if (pScrollBar == (CScrollBar*)GetDlgItem(IDC_SLIDER1))
{
m_tooltip.Update();//更新tip,会触发TTN_NEEDTEXT消息
}
CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
}
//面是实现定制Tooltips的函数,也就是相应TTN_NEEDTEXT的消息函数:
BOOL CCToolTipDlg::OnToolTipNotify(UINT id,NMHDR *pNMHDR,LRESULT *pResult)
{
TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pNMHDR;
UINT nID = pNMHDR-> idFrom;
if (pTTT-> uFlags & TTF_IDISHWND)
{
nID = ::GetDlgCtrlID((HWND)nID);
if(nID==IDC_SLIDER1)//如果现在这个ID是你要显示Tip的控件
{
CString strToolTips;
strToolTips.Format(_T("总共500帧,当前是第%d帧"),m_Slider.GetPos());
wcscpy(pTTT->lpszText, strToolTips);
return TRUE;
}
}
return FALSE;
}
第二种方法。
.h 文件
CSliderCtrl m_Slider;
CToolTipCtrl m_tooltip;
afx_msg void OnNMCustomdrawSlider1(NMHDR *pNMHDR, LRESULT *pResult); //响应slider的自绘消息
.cpp
BEGIN_MESSAGE_MAP(CCToolTipDlg, CDialog)
ON_NOTIFY(NM_CUSTOMDRAW, IDC_SLIDER1, &CCToolTipDlg::OnNMCustomdrawSlider1) //添加消息
END_MESSAGE_MAP()
BOOL CCToolTipDlg::OnInitDialog
{
m_Slider.SetRange(0,100);
m_Slider.SetPos(50);
m_tooltip.Create(this);
m_tooltip.AddTool(GetDlgItem(IDC_SLIDER1), TTS_ALWAYSTIP);
}
PreTranslateMessage(MSG* pMsg)
{
m_tooltip.RelayEvent(pMsg);
return CDialog::PreTranslateMessage(pMsg);
}
OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) //响应滑块拖动跟新
{
CSliderCtrl* pSlider=(CSliderCtrl*)pScrollBar;
int pos=pSlider->GetPos();
if (pScrollBar == (CScrollBar*)GetDlgItem(IDC_SLIDER1))
{
m_tooltip.Update();//更新tip
}
OnCustomdrawSlider(NMHDR* pNMHDR, LRESULT* pResult)
{
CString str;
str.Format( "%d ", m_Slider.GetPos());
m_tooltip.UpdateTipText(str, GetDlgItem(IDC_SLIDER1));
*pResult = 0;
}
到此这两种方法都是可以实现。。拖动滑块并动态显示tip。。大家可以看暴风影音的声音控制滑块就明白了,这个是一样的效果。。
大家有疑问可以留言~~欢迎交流!!
CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
}
- slider控件移动滑块,动态的显示tooltip方法!
- slider控件移动滑块,动态的显示tooltip方法!
- 在CSliderCtrl控件移动滑块动态的显示tooltip
- VC6.0中在CSliderCtrl控件移动滑块动态的显示tooltip
- Flex Slider中显示的Tooltip
- 7滑块控件Slider
- 滑块控件SLIDER的应用与消息
- C#中,当鼠标移动到控件上,动态显示提示内容 -> 用代码操作ToolTip
- C#中,当鼠标移动到控件上,动态显示提示内容 ToolTip
- 滑块控件 (Slider Control) 样式
- VC Slider控件,根据鼠标单击位置来显示滑块位置!
- 写新类让VC Slider控件,根据鼠标单击位置来显示滑块位置!
- VC Slider控件,根据鼠标单击位置来显示滑块位置!
- C#中datagridview使用tooltip控件显示单元格内容与datagridview自带的tooltip显示单元格内容的方法
- WPF中Slider滑块的使用
- 基于vs2013的slider滑动块控件用法
- 关于vc6.0slider滑块控件背景图片经验总结
- iOS cocos2d实现slider(滑块)控件效果源码
- SSH-C3P0配置p6spy实现sql参数可见
- struct command
- php在线编辑文件网页
- poj2643 Election (map)
- mdadm简介
- slider控件移动滑块,动态的显示tooltip方法!
- VC常用方法(转载)
- 制作U盘启动CDLinux
- 奶瓶beini系统
- struts2配置
- 打造3D游戏中第一人称视觉效果 - 带可测试源代码下载
- 关于对象
- 将指定窗口设为顶层窗口SetForegroundWindow的正确用法
- 怎样使用回调函数?