vs2010中CTreeView中準确響應滑鼠左鍵單擊的方法:
void CViewTree::OnNMClick(NMHDR *pNMHDR, LRESULT *pResult)
{
// TODO: Add your control notification handler code here
// 擷取目前選擇的項
CTreeCtrl* pTreeCtrl = this;
CPoint ptCurSel(0,0);
TVHITTESTINFO HitTestInfo;
// 通過滑鼠在客戶區中的位置
GetCursorPos(&ptCurSel);
pTreeCtrl->ScreenToClient(&ptCurSel);
// 擷取目前選擇的是哪一項
HitTestInfo.pt = ptCurSel;
HTREEITEM hSelect = pTreeCtrl->HitTest(&HitTestInfo);
if(hSelect != NULL)
{
CString strItem = pTreeCtrl->GetItemText(hSelect);
::AfxMessageBox( strItem);
}
// 設定該項為選中狀态
pTreeCtrl->SelectItem(hSelect);
*pResult = 0;
}