void CMyDlg::OnNMClickTree1(NMHDR *pNMHDR, LRESULT *pResult)
{
// TODO: 在此添加控件通知处理程序代码
CPoint pt;
UINT nFlags;
::GetCursorPos(&pt);
::ScreenToClient(m_cTree.m_hWnd, &pt);
HTREEITEM hItem = m_cTree.HitTest(pt,&nFlags);
CString sMsg;
sMsg.Format(_T("%s"), m_cTree.GetItemText(hItem));
AfxMessageBox(sMsg);
*pResult = 0;
}
CtreeCtrl的HitTest函数能够得到与当前鼠标位置相关的项。
该函数可以实现,在带有checkbox的树中,当选中父节点的checkbox, 子节点的checkbox可自动选中。因为可以得到父节点的HTREEITEM ,根据这个属性可以遍历子节点。
本文介绍如何使用 CtreeCtrl 的 HitTest 函数来获取鼠标当前位置对应的树节点,并通过示例代码展示如何在带有复选框的树控件中实现父节点被选中时自动选中所有子节点的功能。

311

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



