我响应了右键单击树状控件的消息,我这样的得到单击的项:
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
HTREEITEM item= pNMTreeView->itemNew.hItem;
可是item是空,于是我又换一种方法
UINT uFlags;
CPoint pos;
GetCursorPos(&pos);
HTREEITEM item=m_usertree.HitTest(pos,&uFlags);
可是item依然是空,不要怀疑我是否点中了控件里面的项。
真是百思不得其解,有人遇到过吗?
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
HTREEITEM item= pNMTreeView->itemNew.hItem;
可是item是空,于是我又换一种方法
UINT uFlags;
CPoint pos;
GetCursorPos(&pos);
HTREEITEM item=m_usertree.HitTest(pos,&uFlags);
可是item依然是空,不要怀疑我是否点中了控件里面的项。
真是百思不得其解,有人遇到过吗?
call screentoclient(m_hWnd);
HitTest need client pos
//HTREEITEM item=m_usertree.HitTest(mousepoint,&uFlags);
void CLeftView::OnRButtonDown(UINT nFlags, CPoint point)
{
mousepoint=point;
CTreeView::OnRButtonDown(nFlags, point);
}NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
HTREEITEM item= pNMTreeView->itemNew.hItem;
UINT uFlags;
HTREEITEM item=m_usertree.HitTest(mousepoin,&uFlags);
即可完成
的第一个参数是你右键事件传入的参数。笨蛋给分吧
每个人都有不知道的地方,笨蛋最好少用点!
UINT flag;
flag = TVHT_ONITEM;
HTREEITEM htItem = m_TreeCtrl->HitTest(point, &flag);
if( htItem != NULL )
m_TreeCtrl->SelectItem(htItem);
我只是不熟系界面编程而已,核心和驱动我都不弱,凭我用SDK,C写的几万行的网络程序(我可以不客气的说,效率绝对是同类软件世界第一,能把完成端口用C演绎的这么好的,没几个,--如果你看了我的程序,你就知道那些用C++写的此类程序和我的程序的差距;优化到骨头里的文件操作,可以说也没能几个能用的和普通的文件操作一样),不能说明别的什么把,最起码能说明我不是笨蛋。
lid617(梦幻)说的对
每个人都有不知道的地方。不要动不动就瞧不起别人。