Adding a tooltip for the header control is quite straightforward. We use a tooltip control object and add a tool for the header control
Step 1: Add member of type CToolTipCtrl
Add a member variable of type CToolTipCtrl in your CListCtrl derived class.
CToolTipCtrl m_tooltip;
Step 2: Initialize the tooltip object
Override PreSubclassWindow() in your CListCtrl derived class. After calling the base class PreSubclassWindow(), create the tooltip object. We override the PreSubclassWindow() instead of OnCreate() because the control is usually attached to the C++ object after it has already been created – usually from a dialog resource – and therefore OnCreate is never called for the object. It is important to note that the call to GetDlgItem(0) may fail if the control was created with a style other than LVS_REPORT.
If you are deriving from CListView then the code to create the tooltip and add a tool to it can be moved to OnCreate() or the OnInitialUpdate() function.
void CMyListCtrl::PreSubclassWindow() { CListCtrl::PreSubclassWindow(); // Add initialization code m_tooltip.Create( this ); m_tooltip.AddTool( GetDlgItem(0), "Right click for context menu" ); }
Step 3: Call RelayEvents() function of the tooltip object
Override PreTranslateMessage() and call the RelayEvents() function of the CToolTipCtrl object.
BOOL CMyListCtrl::PreTranslateMessage(MSG* pMsg) { m_tooltip.RelayEvent( pMsg ); return CListCtrl::PreTranslateMessage(pMsg); }