VC中用CPPToolTip轻松实现工具提示

CPPToolTip是一个非常棒的工具提示实现,它支持HTML-lite语句、CSS样式表、菜单、工具条、淡入淡出、超链接、动画、表格等等超强功能。

一、使用CPPToolTip的第一步:文件的引用

文件
描述
PPTooltip.h
PPTooltip.cpp
CPPTooltip 类

PPHtmlDrawer.h PPHtmlDrawer.cpp

CPPHtmlDrawer类. 在tooltip里画出HTML字符串。

PPDrawManager.h
PPDrawManager.cpp

CPPDrawManager类是一组图形处理方法集
CeXDib.h
CeXDib.cpp
CCeXDib类,感谢Davide Pizzolato 和 Davide Calabro的提供. 这个类实现了背景特效.

如果需要使用背景特效,需要定义USE_SHADE:

在 PPDrawManager.h 中

如果需要使用背景特效,需要定义USE_SHADE:

在 PPDrawManager.h 中#define USE_SHADE

二、CPPToolTip的基本使用方法:创建CPPToolTip对象

1
CPPToolTip m_tooltip;

然后创建窗口,对于对话框程序,可以在OnInitDialog中

1
2
CDialog::OnInitDialog();
m_tooltip.Create( this );

然后可以调用AddTool为其它控件注册工具提示,例如:

1
m_tooltip.AddTool(GetDlgItem(IDC_BUTTON1), _T( "IDC_BUTTON1控件的工具提示" ));

可以为某个区域添加工具提示,例如:

1
m_tooltip.AddTool( this , _T( "方框中的Tooltip" ), CRect (100, 100, 200, 200));

另外,你需要在PreTranslateMessage中用RelayEvent将鼠标消息传递到工具提示控件中。

1
2
3
4
BOOL ... ::PreTranslateMessage(MSG* pMsg)
{
m_tooltip.RelayEvent(pMsg);
}
三、为工具条添加工具提示
1)在CMainFrame头文件中创建CPPToolTip对象:
1
CPPToolTip m_tooltip;
2)在CMainFrame::OnCreate() 中调用AddToolBar方法:
1
2
3
4
5
6
7
8
9
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
...
m_tooltip.Create( this );
//为工具条添加工具提示
m_tooltip.AddToolBar(&m_wndToolBar);
return 0;
}
3)用RelayEvent传递鼠标消息
1
2
3
4
BOOL CMainFrame::PreTranslateMessage(MSG* pMsg)
{
m_tooltip.RelayEvent(pMsg);
}
四、为菜单添加工具提示
1)在CMainFrame头文件中创建CPPToolTip对象:
1
CPPToolTip m_tooltip;
2)在CMainFrame::OnCreate() 中调用Create方法:
1
m_tooltip.Create( this );
3)取消注释行,启用菜单工具提示
在PPTooltip.h 中
1
#define PPTOOLTIP_USE_MENU
4)在CMainFrame添加两个消息处理
1
2
3
4
5
6
7
8
9
10
void CMainFrame::OnMenuSelect( UINT nItemID, UINT nFlags, HMENU hSubMenu)
{
m_tooltip.OnMenuSelect(nItemID, nFlags, hSubMenu);
CFrameWnd::OnMenuSelect(nItemID, nFlags, hSubMenu);
}
void CMainFrame::OnEnterIdle( UINT nWhy, CWnd* pWho)
{
m_tooltip.OnEnterIdle(nWhy, pWho);
}
5)用RelayEvent传递鼠标消息
1
2
3
4
BOOL CMainFrame::PreTranslateMessage(MSG* pMsg)
{
m_tooltip.RelayEvent(pMsg);
}
CPPToolTip还有很多超棒的功能期待您的发现。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值