CTreeCtrl子节点单击事件如何获取?
void CAdmindlg::OnNMClickTreePowers(NMHDR *pNMHDR, LRESULT *pResult)
{
//// TODO: Add your control notification handler code here
CTreeCtrl* tree = (CTreeCtrl*)GetDlgItem( IDC_TREE_POWERS );
HTREEITEM root = tree->GetRootItem();
TVHITTESTINFO ht ;
GetCursorPos(&ht.pt) ;
tree->ScreenToClient(&ht.pt) ;
ht.flags = TVHT_ABOVE ;
HTREEITEM hItem = tree->HitTest(&ht);
if (hItem == root)
{
BOOL bChecked = tree->GetCheck(hItem);
if (tree->ItemHasChildren(hItem))
{
HTREEITEM hChildItem = tree->GetChildItem(hItem);
HTREEITEM hNextItem = hChildItem;
while (hNextItem != NULL)
{
tree->SetCheck( hNextItem, !bChecked );
hNextItem = tree->GetNextItem(hNextItem, TVGN_NEXT);
}
}
}
*pResult = 0;
}
这个只能实现,我单击节点以后,其后面的子节点可以全部选中,当我单击子节点的时候,如果之前是选中状态,前面的勾就去掉了,没有选中的话,单击后就选中。但是我不能获取到这个消息!应该如何实现才能获取到这个单击子节点的消息呢?