说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

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

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

下载源代码

 

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对象

 

CPPToolTip m_tooltip;

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

 

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

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

 

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

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

 

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

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

 

BOOL ... ::PreTranslateMessage(MSG* pMsg){    m_tooltip.RelayEvent(pMsg); }
三、为工具条添加工具提示
1)在CMainFrame头文件中创建CPPToolTip对象:
CPPToolTip m_tooltip;
2)在CMainFrame::OnCreate() 中调用AddToolBar方法:
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct){    ...    m_tooltip.Create(this);    //为工具条添加工具提示    m_tooltip.AddToolBar(&m_wndToolBar);    return 0;}
3)用RelayEvent传递鼠标消息
BOOL CMainFrame::PreTranslateMessage(MSG* pMsg){    m_tooltip.RelayEvent(pMsg);}
四、为菜单添加工具提示
1)在CMainFrame头文件中创建CPPToolTip对象:
CPPToolTip m_tooltip;
2)在CMainFrame::OnCreate() 中调用Create方法:
m_tooltip.Create(this);
3)取消注释行,启用菜单工具提示
在PPTooltip.h 中
#define PPTOOLTIP_USE_MENU
4)在CMainFrame添加两个消息处理
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传递鼠标消息
BOOL CMainFrame::PreTranslateMessage(MSG* pMsg){    m_tooltip.RelayEvent(pMsg); }
CPPToolTip还有很多超棒的功能期待您的发现。

 

备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘