1. 程式人生 > >使用CToolTipCtrl控制元件實現游標移動到一個控制元件時顯示特定的提示資訊

使用CToolTipCtrl控制元件實現游標移動到一個控制元件時顯示特定的提示資訊

在利用MFC程式設計時,通常要需要知道某些控制元件代表一些資訊,或在文字框輸入時,需要知道文字框輸入內容提示資訊,ToolTip是Win32中一個通用控制元件,MFC中為其生成了一個類CToolTipCtrl,可實現提示資訊顯示。過程如下:
1、新增CToolTipCtrl成員變數 m_Tip;
2、在父視窗中呼叫EnableToolTips(TRUE);
3、在視窗的OnCreate(或者其他適當的位置)中向ToolTip中新增需要顯示Tip的子視窗,並激活控制元件。
4、過載父視窗的 BOOL PreTranslateMessage(MSG* pMsg) ,在函式中呼叫m_Tip.RelayEvent(pMsg);
5、過載父視窗的 OnMouseMove(UINT nFlags, CPoint point),設定需要提示的資訊。

具體實現過程:
1、在XXDlg.h檔案中定義CToolTipCtrl成員變數:

CToolTipCtrl    m_Tip;      //提示資訊

2、過載OnCreate()函式,使能啟用CToolTipCtrl控制元件,程式碼如下

    EnableToolTips(TRUE);
    m_Tip.Create(this);
    m_Tip.Activate(TRUE);

3、過載PreTranslateMessage(MSG* pMsg)函式,在函式中呼叫 m_Tip.RelayEvent(pMsg),程式碼如下

    if( IsWindow(m_Tip.GetSafeHwnd()
)
)
m_Tip.RelayEvent(pMsg);

4、過載OnMouseMove(UINT nFlags, CPoint point)函式,對需要的控制元件進行資訊提示設定,以文字框為例,程式碼如下:

    m_Tip.AddTool(GetDlgItem(IDC_EDIT_TIME),_T("延時時間"));    //滑鼠移動到IDC_EDIT_TIME文字框時,顯示提示資訊“延時時間”