在CTreeCtrl里用HitTest,MSDN也有代码,TVHT_ONITEM & uFlags 是什么意思?什么时候才是真啊,为什么我在树的结点上点击不行呢?
我是想在结点上点击右键时,弹出菜单,本想这样写:POINT pt;
::GetCursorPos(&pt);
UINT uFlags;
HTREEITEM hItem = m_Tree.HitTest(pt, &uFlags);
if ((hItem != NULL) && (TVHT_ONITEM & uFlags))//---------------------------------(1)
{
m_Tree.Select(hItem, TVGN_CARET);
CMenu TreeMenu;
if (TreeMenu.LoadMenu(IDR_TREE_MENU))
TreeMenu.GetSubMenu(0)->
TrackPopupMenu(TPM_LEFTALIGN | TPM_LEFTBUTTON, pt.x, pt.y, this);
}可是(1)处总为0啊!!!就是TVHT_ONITEM & uFlags = 0,不知道为什么!
我点击的的确是结点啊!
#define TVHT_ONITEM (TVHT_ONITEMICON | TVHT_ONITEMLABEL | TVHT_ONITEMSTATEICON)
我是想在结点上点击右键时,弹出菜单,本想这样写:POINT pt;
::GetCursorPos(&pt);
UINT uFlags;
HTREEITEM hItem = m_Tree.HitTest(pt, &uFlags);
if ((hItem != NULL) && (TVHT_ONITEM & uFlags))//---------------------------------(1)
{
m_Tree.Select(hItem, TVGN_CARET);
CMenu TreeMenu;
if (TreeMenu.LoadMenu(IDR_TREE_MENU))
TreeMenu.GetSubMenu(0)->
TrackPopupMenu(TPM_LEFTALIGN | TPM_LEFTBUTTON, pt.x, pt.y, this);
}可是(1)处总为0啊!!!就是TVHT_ONITEM & uFlags = 0,不知道为什么!
我点击的的确是结点啊!
#define TVHT_ONITEM (TVHT_ONITEMICON | TVHT_ONITEMLABEL | TVHT_ONITEMSTATEICON)
解决方案 »
- 关于,LPPOINT point;::GetCursorPos(point);HWND hcurrent=::WindowFromPoint(*point);
- 关于mfc的简单问题!
- 拓扑关系生成程序
- 散分108分 意为:要您发财~~ 恭祝各位网友 身体健康 工作顺利
- 做了兩個語言版本的string table,怎麽生成另一個語言版本的程序
- UpdateData()出错
- 请求<<Visual C++ 高级开发范例解析>>下载?
- 问题大求解!!!!!
- 求程序,请高手帮忙看看?给分!!!
- informix数据迁移到oracle里
- 求教对话框尺寸
- 怎么用PreTranslateMessage函数截获最小化窗体的鼠标右键消息
HTREEITEM hItem = m_Tree.HitTest(pt, &uFlags);................
...............
TrackPopupMenu之前,再把坐标变换回来:
m_Tree.ClientToScreen(&pt);
...
TrackPopupMenu......