在VC中给Slider添加定制的Tooltips

yl123456789i

yl123456789i

2016-02-19 16:20

下面是个简单易学的在VC中给Slider添加定制的Tooltips教程,图老师小编详细图解介绍包你轻松学会,喜欢的朋友赶紧get起来吧!

  VC中的Slider的Tooltips只能显示表示当前位置的int型值,可是有时候,这种Tooltips并不够用。比如,在一个视频录制的小软件中,可能会需要类似“总共500帧,当前是第13帧”的Tooltips;或者有些时候想在Tooltips中显示float型的值。

  在这些时候我们就只能用CToolTipCtrl配合TTN_NEEDTEXT消息来实现我们的定制Tooltips。

  下面用一个小例子来具体说明:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

        首先,给Slider映射一个Control型变量,本例中为:

CSliderCtrl m_slider;  //  ID为IDC_SLIDERTEST

         然后,添加CToolTipCtrl变量和相应TTN_NEEDTEXT的消息函数:

CToolTipCtrl m_tooltips;

BOOL OnToolTipNotify(UINT id, NMHDR * pNMHDR, LRESULT * pResult);

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

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

展开更多 50%)
分享

猜你喜欢

在VC中给Slider添加定制的Tooltips

编程语言 网络编程
在VC中给Slider添加定制的Tooltips

vc中添加新类的方法

编程语言 网络编程
vc中添加新类的方法

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

VC程序中定制对话框中的回车键

编程语言 网络编程
VC程序中定制对话框中的回车键

在VC中添加响应自定义的消息的代码步骤

编程语言 网络编程
在VC中添加响应自定义的消息的代码步骤

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

在VC++中播放WAV文件

编程语言 网络编程
在VC++中播放WAV文件

ActiveSkin 4.3 软件换肤在VC中的实现

C语言教程 C语言函数
ActiveSkin 4.3 软件换肤在VC中的实现

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

如何使Windows系统自动释放资源

如何使Windows系统自动释放资源

VC++6.0写的等待提示

VC++6.0写的等待提示
下拉加载更多内容 ↓