利用MFC类制作工具提示

利用MFC向导自动生成的单文档或多文档应用程序中,工具栏上都可以有工具提示,只需要编辑其属性,填上需要提示的文本就行了。如果我们想给普通按钮添加提示,该怎么做呢?

其实不难。MFC类库里有一个CToolTipCtrl类,利用该类便可轻松实现。这个类在MSDN里有介绍,我们通常只需用到其中的Create函数和AddTool函数。

virtual BOOL Create( CWnd* pParentWnd, DWORD dwStyle = 0 );

pParentWnd是父窗口指针,通常用this就行了。dwStyle是样式,一般用默认值,即空着这个参数就可以了。

BOOL AddTool( CWnd* pWnd, UINT nIDText, LPCRECT lpRectTool = NULL, UINT_PTR nIDTool = 0 );

BOOL AddTool( CWnd* pWnd, LPCTSTR lpszText = LPSTR_TEXTCALLBACK, LPCRECT lpRectTool = NULL, UINT_PTR nIDTool = 0 );

AddTool函数用来添加要设置工具提示的控件。pWnd为该控件窗口指针。lpRectTool用来指定在什么区域显示工具提示。最简单的用法就是给出两个参数,一个是控件的窗口指针,一个是要提示的字符串。

要制作工具提示,只需要声明一个CToolTipCtrl类的对象,调用Create创建,再调用AddTool添加控件。如有多个控件,可逐个添加。

当你在基于对话框的MFC应用程序中按此方法做时,会看不到效果。别急,我们在PreTranslateMessage中为CToolTipCtrl对象传递一下鼠标消息就行了。假设CToolTipCtrl对象为m_ttCtrl:

BOOL XXX::PreTranslateMessage( MSG* pMsg )
{
    //...
    m_ttCtrl.RelayEvent(pMSG);
}

OK!大功告成!怎么样?你的应用程序界面是不是友好了许多?

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值