• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

在VC中给Slider添加定制的Tooltip

发布: 2008-6-03 10:49 | 作者: 不详 | 来源: CSDN | 查看: 421次 | 进入软件测试论坛讨论

领测软件测试网 关键字:VC中 Slider Tooltip介绍了如何在在VC中给Slider添加定制的Tooltips。
        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,其他控件也可以用这个方法来实现。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

TAG: 定制 Slider Tooltip


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网