Tooltips for dialog controls 

Here's a little trick I use to get tooltips into a dialog quickly. I usually put this code into the OnInitDialog. It allows me to easily add tooltips to any dialog quickly.

Add a member to the CDialog or CWnd derived class in the header like: 

CToolTipCtrl    CTTDialog :: m_ToolTip;

In the OnInitDialog or OnInitialUpdate, add: 

m_ToolTip.Create (this);

m_ToolTip.Activate (TRUE);

CWnd*    pWnd = GetWindow (GW_CHILD);

while (pWnd)

{

    int nID = pWnd->GetDlgCtrlID ();

    if (nID != -1)

    {

        m_ToolTip.AddTool (pWnd, pWnd->GetDlgCtrlID ());

    }

    pWnd = pWnd->GetWindow (GW_HWNDNEXT);

}

To add a tooltip to a control, just add a string resource using the same ID as the control to get the tip. If I wanted the OK button to have a tip, I would add a string resource for IDOK.

Also do not forget to put the following code to you dialog class: 

BOOL CTTDialog :: PreTranslateMessage(MSG* pMsg) 

{

    if (m_hWnd)

    {

        m_ToolTip.RelayEvent (pMsg);

        return CDialog::PreTranslateMessage(pMsg);

    }

    return (FALSE);

}

That's it. 

Last updated: 18 May 1998