1:TreeCtrl控件
功能:想要獲取點擊的Item內容,想着在NM_CLICK消息中處理。
以下是我的處理方式:
void CTest_TreeCtrlDlg::OnNMClickTreeNormal(NMHDR *pNMHDR, LRESULT *pResult)
{
// TODO: 在此添加控件通知處理程序代碼
*pResult = 0;
HTREEITEM hItem = m_tree.GetSelectedItem();
CString strSelect = m_tree.GetItemText(hItem);
AfxMessageBox(strSelect);//提示選中的文本信息
}
根據上述代碼設置後,發現,當我點擊item時,是有延遲操作的。每次選中的是上一個item的內容,很是奇怪?
難道是我沒有根據鼠標座標來獲取的原因?這個有待考察。
後來,我就用TVN_SELCHANGED消息處理。
以下是我的處理方式:
void CTest_TreeCtrlDlg::OnTvnSelchangedTreeNormal(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
// TODO: 在此添加控件通知處理程序代碼
*pResult = 0;
HTREEITEM hItem = m_tree.GetSelectedItem();
CString strSelect = m_tree.GetItemText(hItem);
}
當這兩個消息同時存在時,出現了一種現象:
NMCLICK消息只顯示包含子節點的item,TVN_SELCHANGED只顯示子節點item。