天天看點

MFC ToolTip提示消息框的添加

為視窗或其中的控件添加提示框,可以使用MFC的類CToolTipCtrl,使用方法如下(使用Microsoft Visual Studio 2010程式設計環境)

建立一個基于對話框的ToolTip項目

1.在視窗的類定義中添加如下代碼:

class CToolTipDlg : public CDialogEx
{
…
public:
CToolTipCtrl  m_tooltip;
…
}
           

2.通過項目-類向導添加成員變量添加Button控件成員m_tooltip和Edit控件成員m_edit。

MFC ToolTip提示消息框的添加

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,如