在VC中给Slider添加定制的Tooltips
来源:互联网 发布:淘宝补差价是什么意思 编辑:程序博客网 时间:2024/06/06 08:25
VC中的Slider的Tooltips只能显示表示当前位置的int型值,可是有时候,这种Tooltips并不够用。比如,在一个视频录制的小软件中,可能会需要类似“总共500帧,当前是第13帧”的Tooltips;或者有些时候想在Tooltips中显示float型的值。
在这些时候我们就只能用CToolTipCtrl配合TTN_NEEDTEXT消息来实现我们的定制Tooltips。
下面用一个小例子来具体说明:
首先,给Slider映射一个Control型变量,本例中为:
CSliderCtrl m_slider; // ID为IDC_SLIDERTEST
然后,添加CToolTipCtrl变量和相应TTN_NEEDTEXT的消息函数:
CToolTipCtrl m_tooltips;
BOOL OnToolTipNotify(UINT id, NMHDR * pNMHDR, LRESULT * pResult);
在cpp文件的消息映射中加入以下代码:
ON_NOTIFY_EX(TTN_NEEDTEXT, 0, OnToolTipNotify)
在初始化函数中,添加以下代码:
m_slider.SetRange(0, 500, TRUE);
m_slider.SetPos(0);
// 创建Tooltips
m_tooltips.Create(GetDlgItem(IDC_SLIDERTEST));
m_tooltips.Activate(TRUE);
在OnHScroll函数中添加:
if (pScrollBar == (CScrollBar*)GetDlgItem(IDC_SLIDERTEST))
m_tooltips.Update(); // 更新Tooltips,会触发TTN_NEEDTEXT消息
下面是实现定制Tooltips的函数,也就是相应TTN_NEEDTEXT的消息函数:
BOOL OnToolTipNotify(UINT id, NMHDR * pNMHDR, LRESULT * pResult)
{
TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pNMHDR;
UINT nID =pNMHDR->idFrom;
if (pTTT->uFlags & TTF_IDISHWND)
{
// idFrom is actually the HWND of the tool
nID = ::GetDlgCtrlID((HWND)nID);
if(nID)
{
// 这里就是你要显示的Tooltips,可以根据需要来定制
CString strToolTips;
strToolTips.Format("总共500帧,当前是第%d帧", m_slider.GetPos());
strcpy(pTTT->lpszText, strToolTips);
pTTT->hinst = NULL;
return(TRUE);
}
}
return(FALSE);
}
这种方法不仅仅可以实现Slider的定制Tooltips,其他控件也可以用这个方法来实现。
在这些时候我们就只能用CToolTipCtrl配合TTN_NEEDTEXT消息来实现我们的定制Tooltips。
下面用一个小例子来具体说明:
首先,给Slider映射一个Control型变量,本例中为:
CSliderCtrl m_slider; // ID为IDC_SLIDERTEST
然后,添加CToolTipCtrl变量和相应TTN_NEEDTEXT的消息函数:
CToolTipCtrl m_tooltips;
BOOL OnToolTipNotify(UINT id, NMHDR * pNMHDR, LRESULT * pResult);
在cpp文件的消息映射中加入以下代码:
ON_NOTIFY_EX(TTN_NEEDTEXT, 0, OnToolTipNotify)
在初始化函数中,添加以下代码:
m_slider.SetRange(0, 500, TRUE);
m_slider.SetPos(0);
// 创建Tooltips
m_tooltips.Create(GetDlgItem(IDC_SLIDERTEST));
m_tooltips.Activate(TRUE);
在OnHScroll函数中添加:
if (pScrollBar == (CScrollBar*)GetDlgItem(IDC_SLIDERTEST))
m_tooltips.Update(); // 更新Tooltips,会触发TTN_NEEDTEXT消息
下面是实现定制Tooltips的函数,也就是相应TTN_NEEDTEXT的消息函数:
BOOL OnToolTipNotify(UINT id, NMHDR * pNMHDR, LRESULT * pResult)
{
TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pNMHDR;
UINT nID =pNMHDR->idFrom;
if (pTTT->uFlags & TTF_IDISHWND)
{
// idFrom is actually the HWND of the tool
nID = ::GetDlgCtrlID((HWND)nID);
if(nID)
{
// 这里就是你要显示的Tooltips,可以根据需要来定制
CString strToolTips;
strToolTips.Format("总共500帧,当前是第%d帧", m_slider.GetPos());
strcpy(pTTT->lpszText, strToolTips);
pTTT->hinst = NULL;
return(TRUE);
}
}
return(FALSE);
}
这种方法不仅仅可以实现Slider的定制Tooltips,其他控件也可以用这个方法来实现。
- 在VC中给Slider添加定制的Tooltips
- 在VC中给Slider添加定制的Tooltips
- 在VC中给Slider添加定制的Tooltips
- 在VC中给Slider添加定制的Tooltips
- 给JTable 的每个单元格添加 tooltips
- vc中滑动控件slider的使用
- VC++中slider控件的使用
- Tomcat7在JNDI中添加定制的JavaBean数据源
- 《VS2010中给VC开发的应用添加Installer》
- 在VC中定制Doxygen注释宏
- 在VC中定制Doxygen注释宏
- 在VC中定制Doxygen注释宏
- MFC中 滑动条控件 Slider Control 的添加
- 给自己的Blog 上添加定制的搜索引擎
- 给自己的Blog 上添加定制的搜索引擎
- 给VC添加注释块的功能
- VC++中轻松实现滑动(Slider)控件
- VC++中轻松实现滑动(Slider)控件
- Java - 通过优酷网视频播放网址解析出Mp4格式的单个文件
- 删除oracle Job
- Android Dialog(对话框中获取输入框的内容)
- Linux学习笔记——vi/vim编辑器命令快速入门
- QT 和SDL VDC NVR 双屏界面显示,最多可以支持4块屏
- 在VC中给Slider添加定制的Tooltips
- 带通配符的字符串比较
- hibernate3和struts1整合的时候struts-config.xml报错
- 初试javax.mail
- AFNetworking 库的导入报错问题解决
- 操作系统--作业管理
- Python yield 使用方法
- ubuntu 安装增强功能
- C语言实现矩阵相乘