| 网站首页 | 技术文章 | 软件下载 | 图片中心 | 留言 | 电子商城 | 【技术交流论坛】 | 
最新公告:

  没有公告

您现在的位置: [航科电子][嵌入式系统开发技术交流] >> 技术文章 >> 软件开发专栏 >> VisualC++开发 >> 正文
专题栏目
更多内容
最新推荐 更多内容
相关文章
没有相关文章
更多内容
在VC中给Slider添加定制的Tooltips         
在VC中给Slider添加定制的Tooltips
作者:独孤一星 文章来源:CSDN 点击数: 更新时间:2006-7-9 0:38:53

介绍了如何在在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,其他控件也可以用这个方法来实现。

文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 管理登录 | 
    动易网络
    站长:[航科电子]
    信息产业部备案
    湘ICP备05011666号