天天看點

vs2010中CTreeView中準确響應滑鼠左鍵單擊的方法

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;

}