下载:
下载链接:https://www.codeproject.com/Articles/3655/CPPToolTip-v2-1
上面的是类源码,下面的是大佬的小项目
下载完成后有八个文件
使用:
介绍:
文件 |
描述 |
PPTooltip.h PPTooltip.cpp |
CPPTooltip 类 |
PPHtmlDrawer.h PPHtmlDrawer.cpp |
CPPHtmlDrawer类. 在tooltip里画出HTML字符串。 |
PPDrawManager.h |
CPPDrawManager类是一组图形处理方法集 |
CeXDib.h CeXDib.cpp |
CCeXDib类,感谢Davide Pizzolato 和 Davide Calabro的提供. 这个类实现了背景特效. |
第一步:将文件导入你自己的项目(这个应该不用教了吧,把文件复制到你项目的文件夹,然后在编译器里添加现有项)
第二步:添加头文件(在你的项目中要包含头文件 PPTooltip.h 在stdAfx.h中)
第三步:创建CPPTooltip对象
第四步:在窗口初始化函数中,对于对话框程序,可以在OnInitDialog中添加
第五步:添加 PreTranslateMessage 的相应程序,将相关message id传入tooltips(PreTranslateMessage函数的添加在VC中是在空白处右击,选择Class Wizard,在Messages中找到PreTranslateMessage,在VS中类视图右击你的DLG类,点击属性,点击消息图标,找到并添加)
以上是必要部分;
下面说一下针对于不同功能的做法(上面的都要做到,才能完成下面的):
1.调用AddTool为其它控件注册工具提示,例如:
m_tooltip.AddTool(GetDlgItem(IDC_BUTTON1), _T("IDC_BUTTON1控件的工具提示"));
2.可以为某个区域添加工具提示,例如:
m_tooltip.AddTool(this, _T("方框中的Tooltip"), CRect (100, 100, 200, 200));
3.为工具条添加工具提示,例如:
在C***DLG::OnInitDialog 文件中调用AddToolBar方法:
...
m_tooltip.Create(this);
//为工具条添加工具提示
m_tooltip.AddToolBar(&m_wndToolBar); //m_wndToolBar是工具栏的绑定变量
return 0;
4.为菜单添加工具提示,例如:
取消注释行,启用菜单工具提示在PPTooltip.h 中
#define PPTOOLTIP_USE_MENU
4)在CMainFrame添加两个消息处理
void C***DLG::OnMenuSelect(UINT nItemID, UINT nFlags, HMENU hSubMenu)
{
m_tooltip.OnMenuSelect(nItemID, nFlags, hSubMenu);
CFrameWnd::OnMenuSelect(nItemID, nFlags, hSubMenu);
}
void C***DLG::OnEnterIdle(UINT nWhy, CWnd* pWho)
{
m_tooltip.OnEnterIdle(nWhy, pWho);
}
还有类似于背景颜色或者特效等,大家可以自行到上面的网址去看,大佬自己都讲述了