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

Must Read