Displaying Information in a CTreeView ToolTip
Environment:
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)
.
.
.
ON_NOTIFY_REFLECT (TVN_GETINFOTIP, OnTvnGetInfoTip)
END_MESSAGE_MAP()
And define the handler:
void CTestTreeView::OnTvnGetInfoTip(NMHDR *pNMHDR,
LRESULT *pResult)
{
LPNMTVGETINFOTIP pGetInfoTip = (LPNMTVGETINFOTIP)pNMHDR
CString csItemTxt =
m_TreeCtrl.GetItemText(pGetInfoTip->hItem);
strcpy(pGetInfoTip->pszText, csItemTxt);
*pResult = 0;
}
Don't forget to add a ModifyStyle command in OnInitialUpdate:
GetTreeCtrl().ModifyStyle(0,
TVS_HASLINES |
TVS_LINESATROOT |
TVS_HASBUTTONS |
TVS_INFOTIP

Comments
Using this Method with Visual C++ Version 5
Posted by sweeneymini on 06/16/2005 07:12amI have the upto date MFC DLL AFAIK, so can I use the new functionality of this version (e.g. using TVN_GETINFOTIP) or am I restricted to using what MFC version it came with?
ReplyDelay Time ?
Posted by Legacy on 06/03/2003 12:00amOriginally posted by: Yury
-
ReplyDelay Time ?
Posted by yotamwimmer on 12/12/2010 05:41pmWere you able to solve this issue?
Replytree_view_newbie
Posted by Legacy on 11/18/2002 12:00amOriginally posted by: c_k
ReplyWould need some easy Tutorial, to implement a Tree View.
Your exampe might be good, but where to insert the code.
(SDI ?, Doc/View ?????)
Some corrections
Posted by Legacy on 08/28/2002 12:00amOriginally posted by: Giraud
Reply