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 ,根据这个属性可以遍历子节点。