MFC中右键取得句柄问题 http://www.diybl.com/course/3_program/c++/cppjs/20090302/156482.html 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://topic.csdn.net/t/20030509/18/1762178.html { //1.获得菜单弹出位置 CPoint pt1,pt2; GetCursorPos(&pt1); pt2 = pt1; ScreenToClient(&pt1); //2.获得点击的item HTREEITEM RClickItem = NULL; RClickItem = m_wndTree.HitTest(pt1); if(RClickItem == NULL) return; m_wndTree.Select(RClickItem, TVGN_CARET); //3. 获得索引 DWORD index; index = m_wndTree.GetItemData(RClickItem); //4. 选定当前右键点击Item // m_wndTree.SelectItem(RClickItem); ... ... ... ... //do something you want ... ... //9.记录当前右键单击Item m_RclickItem = RClickItem; *pResult = 0; } //右击列表void CMyTree::OnNMRclick(NMHDR * pNMHDR, LRESULT * pResult){ //变量定义 HTREEITEM hTreeItem=GetCurrentTreeItem(); //选择列表 if (hTreeItem!=NULL) { Select(hTreeItem,TVGN_CARET); }} CPoint myPoint;UINT uFlag;GetCursorPos(&myPoint);m_tree.ScreenToClient(&myPoint);HTREEITEM hti = m_tree.HitTest(myPoint, &uFlag);hti就是那个树节点了 void CGraduateDesignDlg::OnDblclkTree1(NMHDR* pNMHDR, LRESULT* pResult) { // TODO: Add your control notification handler code here HTREEITEM hSel = m_tree.GetSelectedItem(); //取得选项句柄 CString cText = m_tree.GetItemText(hSel); //取得数据项 if ( cText == "详细资料" ) { MessageBox("详细信息"); } *pResult = 0; } 这是我双击的函数我想的是右键点击跟双击一样能够获得所点节点的值,CSTring型的CString cText = m_tree.GetItemText(hSel);然后判断这个值做出相应菜单弹出 if(hti != NULL){ CString cText = m_tree.GetItemText(hSel); .......................................} 顶10楼的,我用winform时遇到过这种情况,就是双击或者左键单击能选中一个树节点,但是右键直接点击无法选中当前节点,你需要在右键点击代码中执行一段代码,让当前节点处于选中状态,然后使用HTREEITEM hSel = m_tree.GetSelectedItem();。或者像10楼那样,通过point获取节点。希望能对你有帮助 弹出的菜单无法关掉.....鼠标点哪菜单跟哪....只能关进程.菜单有两个选项,我想在选择之后就把菜单窗口关掉是用控件指针->ShowWindow(SW_HIDE); 控件指针->ShowWindow(SW_SHOW);么?具体怎么使用呢? 在消息映射里面可以找到右键点击的消息NM_RCLICK 事关每个程序员,请楼主不要删除。 USB writeFile 出错 请教VC中删除文件夹的函数 怎么去查opengl的帮助啊 登录少有的验证码,呵呵,散分,先到先得 这样取汉字拼音首字母?谢谢!!! 有关绘图的问题。 救命啊,一个简单的重复劳动。我想编程实现。 为何没有时间成员 那有UML的书,最好电子版,急急 成员函数线程类问题 急啊急 MFC 对话框程序如何让变灰的菜单可用
{
//1.获得菜单弹出位置
CPoint pt1,pt2;
GetCursorPos(&pt1);
pt2 = pt1;
ScreenToClient(&pt1);
//2.获得点击的item
HTREEITEM RClickItem = NULL;
RClickItem = m_wndTree.HitTest(pt1);
if(RClickItem == NULL)
return;
m_wndTree.Select(RClickItem, TVGN_CARET);
//3. 获得索引
DWORD index;
index = m_wndTree.GetItemData(RClickItem);
//4. 选定当前右键点击Item
// m_wndTree.SelectItem(RClickItem);
... ...
... ... //do something you want
... ...
//9.记录当前右键单击Item
m_RclickItem = RClickItem;
*pResult = 0;
}
void CMyTree::OnNMRclick(NMHDR * pNMHDR, LRESULT * pResult)
{
//变量定义
HTREEITEM hTreeItem=GetCurrentTreeItem(); //选择列表
if (hTreeItem!=NULL)
{
Select(hTreeItem,TVGN_CARET);
}
}
UINT uFlag;
GetCursorPos(&myPoint);
m_tree.ScreenToClient(&myPoint);
HTREEITEM hti = m_tree.HitTest(myPoint, &uFlag);
hti就是那个树节点了
{
// TODO: Add your control notification handler code here
HTREEITEM hSel = m_tree.GetSelectedItem(); //取得选项句柄
CString cText = m_tree.GetItemText(hSel); //取得数据项
if ( cText == "详细资料" )
{
MessageBox("详细信息");
} *pResult = 0;
} 这是我双击的函数
我想的是右键点击跟双击一样能够获得所点节点的值,CSTring型的
CString cText = m_tree.GetItemText(hSel);
然后判断这个值做出相应菜单弹出
{
CString cText = m_tree.GetItemText(hSel);
.......................
..............
.
.
}
弹出的菜单无法关掉.....鼠标点哪菜单跟哪....只能关进程.
菜单有两个选项,我想在选择之后就把菜单窗口关掉
是用
控件指针->ShowWindow(SW_HIDE);
控件指针->ShowWindow(SW_SHOW);
么?
具体怎么使用呢?