void CTreeView::OnNMClickTree(NMHDR *pNMHDR, LRESULT *pResult)
{
// TODO: Add your control notification handler code here
CPoint point;
UINT uFlag; // 接收有关点击测试的信息
GetCursorPos(&point); // 获取屏幕鼠标坐标
m_tree.ScreenToClient(&point);
// 点击测试,是否点击了树节点
HTREEITEM hItem = m_tree.HitTest(point, &uFlag);
if(NULL!=hItem)
{
if(uFlag&TVHT_ABOVE)
MessageBox("L1:TVHT_ABOVE");
if(uFlag&TVHT_BELOW)
MessageBox("L2:TVHT_BELOW");
if(uFlag&TVHT_NOWHERE)
MessageBox("L3:TVHT_NOWHERE");
if(uFlag&TVHT_ONITEM)
MessageBox("L4:TVHT_ONITEM");
if(uFlag&TVHT_ONITEMBUTTON)
MessageBox("L5:TVHT_ONITEMBUTTON");
if(uFlag&TVHT_ONITEMICON)
MessageBox("L6:TVHT_ONITEMICON");
if(uFlag&TVHT_ONITEMINDENT)
MessageBox("L7:TVHT_ONITEMINDENT");
if(uFlag&TVHT_ONITEMLABEL)
MessageBox("L8:TVHT_ONITEMLABEL");
if(uFlag&TVHT_ONITEMRIGHT)
MessageBox("L9:TVHT_ONITEMRIGHT");
if(uFlag&TVHT_ONITEMSTATEICON)
MessageBox("L10:TVHT_ONITEMSTATEICON");
if(uFlag&TVHT_TOLEFT)
MessageBox("L11:TVHT_TOLEFT");
if(uFlag&TVHT_TORIGHT)
MessageBox("L12:TVHT_TORIGHT");
}
}
本文介绍了一个具体的TreeView控件点击事件处理方法。通过分析鼠标点击位置,确定点击是否落在树节点的不同部分,如图标、标签等,并针对每种情况提供反馈。此方法可用于Windows应用程序中,以增强用户交互体验。
1310

被折叠的 条评论
为什么被折叠?



