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

More by Author

Get the Free Newsletter!

Subscribe to Developer Insider for top news, trends & analysis

Must Read