下載:
下載鏈接: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);
}
還有類似於背景顏色或者特效等,大家可以自行到上面的網址去看,大佬自己都講述了