CTreeView右键弹出菜单
来源:互联网 发布:sql注入工具使用 编辑:程序博客网 时间:2024/06/01 09:41
今天在做CTreeView右键单击节点弹出菜单操作时,返回的HTREEITEM句柄总是空值,不知道是什么原因?程序是单文档的,使用的下面的方法:
POINT point;UINT uFlags;GetCursorPos(&point);CTreeCtrl &pCtrl = GetTreeCtrl();pCtrl.ScreenToClient(&point);HTREEITEM hItem = pCtrl.HitTest(point, &uFlags);
右键点击时返回的hItem总为空。至今不知原因。
void CMyTreeView::OnNMRClick(NMHDR *pNMHDR, LRESULT *pResult){/*NM_TREEVIEW* pTreeView = (NM_TREEVIEW*)pNMHDR;HTREEITEM hItem = pTreeView->itemNew.hItem;*/HTREEITEM hSel = GetTreeCtrl().GetSelectedItem();if (hSel != NULL ){HTREEITEM hChildItem = GetTreeCtrl().GetChildItem(hSel);if (!hChildItem)//不存在儿子节点,证明是文件{CString strSel = GetTreeCtrl().GetItemText(hSel);strFileName = strSel; strItemPath = strSel;HTREEITEM hParentItem = GetTreeCtrl().GetParentItem(hSel);while (hParentItem){strItemPath = _T("\\")+strItemPath;strSel = GetTreeCtrl().GetItemText(hParentItem);strItemPath = strSel+strItemPath;hParentItem = GetTreeCtrl().GetParentItem(hParentItem);}}}CMenu Menu,*pSubMenu;Menu.LoadMenu(IDR_MENU1);pSubMenu = Menu.GetSubMenu(0);CPoint Pt;GetCursorPos(&Pt);pSubMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,Pt.x,Pt.y,this);*pResult = 0;}
此方法要求在右击节点之前,先左击选中节点,之后在右击。此时可以弹出右键菜单。
阅读全文
0 0
- CTreeView右键弹出菜单
- java右键弹出菜单
- 动态弹出右键菜单
- 对话框弹出右键菜单
- 右键弹出菜单
- 控件右键弹出菜单
- 右键弹出菜单
- 右键弹出菜单
- 右键弹出菜单
- 右键弹出快捷菜单
- jquery 右键弹出菜单
- 制作右键弹出菜单
- 右键GtkTreeView弹出菜单
- VC 右键弹出菜单
- vb 右键弹出菜单
- DataGridView右键弹出菜单
- MFC右键弹出菜单
- 禁止右键弹出菜单
- linux解决Tomcat内存溢出
- AndroidStudio历史记录找回本地修改代码
- 简单了解下Dubbo
- python--列表
- 好logo要具备这3个要素
- CTreeView右键弹出菜单
- 我为什么开始写博客了?
- DACL & SACL
- 恢复突然消失的Chrome浏览器书签
- Switch语句的相关问题
- java搭建 SpringMVC+Mybatis(SMM)+mybatis-generate
- 解决Cannot change version of project facet Dynamic web module to 2.5
- windows、linux下java连接本地MQ队列实现输入(二)
- Navicat For Mysql快捷键大全