MFC CTreeCtrl左键单击无法获取项的内容怎么回事?

voidCFileM::OnClickTree(NMHDR*pNMHDR,LRESULT*pResult){UpdateData(TRUE);m_list.DeleteA... void CFileM::OnClickTree(NMHDR* pNMHDR,LRESULT* pResult)
{
UpdateData(TRUE);
m_list.DeleteALLItems();
NM_TREEUIEW *TREEVIEW =(NM_TREEVIEW *)pNMHDR;
hItem = TREEVIEW->itemNew.hItem;
if(hItem==FuINFO)
{
return;
}
CString connnet = m_tree.GetItemText(hItem);
if(connent.isEmpty())
{
return;

}
展开
 我来答
百度网友6eab688
2012-08-25 · TA获得超过4690个赞
知道大有可为答主
回答量:962
采纳率:50%
帮助的人:932万
展开全部
你这是响应的哪个通知消息?
可以将pNMHDR转换成NM_TREEVIEW的,只有
TVN_BEGINDRAG
TVN_BEGINRDRAG
TVN_DELETEITEM
TVN_ITEMEXPANDED
TVN_ITEMEXPANDING
TVN_SELCHANGED
TVN_SELCHANGING
TVN_SINGLEEXPAND
如果响应的是NM_CLICK,只能用 NMHDR 结构,不过你可以使用CTreeCtrl的HitTest函数测试,鼠标点在哪个项目上
追问
是响应NM_CLICK,那应该怎么改才能获取到选中的项文本?
追答
上面已经写了用 HitTest 函数测试;调用 m_tree.HitTest
CPoint pt;
GetCursorPos(&pt);
m_tree.ScreenToClient(&pt);
hItem = m_tree.HitTest(pt);
更具体的使用见MSDN
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式