為視窗或其中的控件添加提示框,可以使用MFC的類CToolTipCtrl,使用方法如下(使用Microsoft Visual Studio 2010程式設計環境)
建立一個基于對話框的ToolTip項目
1.在視窗的類定義中添加如下代碼:
class CToolTipDlg : public CDialogEx
{
…
public:
CToolTipCtrl m_tooltip;
…
}
2.通過項目-類向導添加成員變量添加Button控件成員m_tooltip和Edit控件成員m_edit。
3.在對話框的OnInitDialog()初始化函數中添加如下代碼
m_tooltip.Create(this);
//設定延時顯示提示資訊的時間
m_tooltip.SetDelayTime(200);
//設定提示消息的背景顔色為紫紅色
m_tooltip.SetTipBkColor(RGB(255,0,255));
//設定控件提示資訊
m_tooltip.AddTool(&m_button,_T("這是一個button按鈕"));
m_tooltip.AddTool(&m_edit,_T("這是一個編輯框"));
4.重載父視窗的 BOOL PreTranslateMessage(MSG* pMsg) 函數,添加如下代碼。
BOOL CToolTipDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: 在此添加專用代碼和/或調用基類
if(m_tooltip.m_hWnd!=NULL)
m_tooltip.RelayEvent(pMsg);
return CDialogEx::PreTranslateMessage(pMsg);
}
到這裡為控件添加ToolTip消息提示框就完成了。
如果想修改已添加的tip的内容,可以使用UpdateTipText函數,添加如下代碼
CWnd* pW=GetDlgItem(IDC_CHECK1);//得到已添加tip控件
m_tooltip.UpdateTipText(L"asdflasdf",pW);//更新tip的内容
對于靜态文本框,要把Notify的屬性設為TRUE;而如果靜态文本控件是動态建立的,必須給視窗風格添加SS_NOTIFY,如