Displaying Information in a CTreeView ToolTip

This article was contributed by John Czopowik.


There is some confusion in the MFC world regarding CTreeView and tooltips. It seems as though the conservative approach of handling TTN_NEEDTEXTW and TTN_NEEDTEXTA notification messages does not work for some, known-only-to-Microsoft, reason. The following code requires comctl32.dll version 4.71 or later. Windows with IE ver 4.0 has this DLL updated already. A newer tree common control has an additional style: You can use the setting style of tree view: TVS_INFOTIP. In turn, the tree control will send notification message TVN_GETINFOTIP when the control is requesting text for tooltips. The handler receives a pointer to NMTVGETINFOTIP structure that has information about the tree item.

In this example, I set tootips to an item text. In the header file of the CTreeView derived class, declare a message handler:

afx_msg void OnTvnGetInfoTip NMHDR pNMHDR LRESULT pResult

And in cpp, use following macro:

BEGIN_MESSAGE_MAP (CTreeViewTestView, CTreeView)

And define the handler:

void CTestTreeView::OnTvnGetInfoTip(NMHDR *pNMHDR,
                                    LRESULT *pResult)


  CString csItemTxt =

  strcpy(pGetInfoTip->pszText, csItemTxt);

  *pResult = 0;


Don’t forget to add a ModifyStyle command in OnInitialUpdate:

                          TVS_HASLINES |
                          TVS_LINESATROOT |
                          TVS_HASBUTTONS |

More by Author

Must Read