0在stdafx.h中进行准备工作

#define _UNIT_ONE 0
#define _UNIT_TWO 1
#define _UNIT_THREE 2
#define _UNIT_FORE 3

typedef struct tag_tree
{
unsigned long nType;
char t_name[20];
int  t_id;

}TREEDATA,*LPTREEDATA;

1 在OnInitDialog初始化函数

HTREEITEM hItem = m_tree.InsertItem("目录", NULL, NULL, TVI_ROOT);
HTREEITEM hItem1 =m_tree.InsertItem("镜头",NULL, NULL,hItem);
if(hItem1)
{
LPTREEDATA lpTd=new TREEDATA;
lpTd->nType=_UNIT_ONE;
m_tree.SetItemData(hItem1,(DWORD)lpTd);
}
HTREEITEM hItem2 =m_tree.InsertItem("场景",NULL, NULL,hItem);
if(hItem2)
{
LPTREEDATA lpTd=new TREEDATA;
lpTd->nType=_UNIT_TWO;
m_tree.SetItemData(hItem2,(DWORD)lpTd);
}
HTREEITEM hItem3 =m_tree.InsertItem("电视强",NULL, NULL,hItem);
if(hItem3)
{
LPTREEDATA lpTd=new TREEDATA;
lpTd->nType=_UNIT_THREE;
m_tree.SetItemData(hItem3,(DWORD)lpTd);
}
HTREEITEM hItem4 =m_tree.InsertItem("视频",NULL, NULL,hItem);
if(hItem4)
{
LPTREEDATA lpTd=new TREEDATA;
lpTd->nType=_UNIT_FORE;
m_tree.SetItemData(hItem4,(DWORD)lpTd);
}

2 在OnContextMenu(CWnd* pWnd, CPoint point) 该函数中进行处理

void CEmnuWIDNSSDlg::OnContextMenu(CWnd* pWnd, CPoint point)

{
UINT nFlags;
CPoint pt=point;

m_tree.ScreenToClient(&pt);

HTREEITEM hItem = m_tree.HitTest(pt,&nFlags);
UINT nMenuResuse ;

if(hItem==NULL ||!(nFlags & TVHT_ONITEM))
return;
else
{
LPTREEDATA lpTd = (LPTREEDATA)m_tree.GetItemData(hItem);
if(lpTd == NULL) return;
switch(lpTd->nType)
{
case _UNIT_ONE:
case _UNIT_TWO:
nMenuResuse = IDR_MENU1;
break;
case _UNIT_THREE:
case _UNIT_FORE:
nMenuResuse = IDR_MENU2;
break;
default:
break;
}
CMenu menu;
menu.LoadMenu(nMenuResuse);
CMenu *pMenu = menu.GetSubMenu(0);
if (pMenu)
{
pMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTALIGN ,point.x,point.y,this);
}
}
}

弹出菜单TrackPopupMenu与Ctree结合相关推荐

  1. 孙鑫VC++深入详解:Lesson6 Part3 ---创建右键弹出菜单 TrackPopupMenu

    1 -----增加右键弹出菜单方法一:      Project-->Add to Project-->Components and Controls -->Visual C++ C ...

  2. 通过TrackPopupMenu函数弹出菜单

    如果你写一个win32程序,你想在某个条目上鼠标右键,弹出一个简单的菜单,该菜单就有一个选项. 那么,你不用费很大的力气去设计这个菜单,也不需要写一个xml等,你只需要使用TrackPopupMenu ...

  3. vc+如何添加右键弹出菜单

    2019独角兽企业重金招聘Python工程师标准>>> 一.创建新工程 二.编辑菜单资源 1.添加菜单 按"Ctrl+R",双击"Menu"图 ...

  4. 右键弹出菜单和快捷键的设置

    写MFC,少不了用到菜单和快捷键,此处我用到了右键菜单.我的项目是一个播放器的实现,那么在屏幕中央右键点击,应该会弹出右键菜单,比如播放,暂停等,如我这样: 对应的每一个菜单应该还有相应的快捷键.那么 ...

  5. 梦想CAD控件网页版右键弹出菜单

    用户需要右键弹出菜单,则需要响应鼠标事件,右键按下后,弹出菜单分为在命令下运行及在非命令下运行,具体介绍如下 : 一.新建菜单文件 1.新一个文本文件: mxpoptest.mnu,内容如下(此文件为 ...

  6. 梦想CAD控件com接口界面控制右键弹出菜单

    用户需要右键弹出菜单,则需要响应鼠标事件,右键按下后,弹出菜单分为在命令下运行及在非命令下运行,具体介绍如下(C#语言参考例子:"samples\CSharpRightKeyMenu\CSh ...

  7. c语言怎样响应右键弹出窗口,MFC创建右键弹出菜单的方法

    本文实例讲述了MFC创建右键弹出菜单的方法.分享给大家供大家参考.具体实现方法如下: ①.添加一个菜单资源,ID为IDM_RIGHTMENU.因为在显示右键菜单时顶级菜单是不显示的,所以可以给它设置任 ...

  8. JQUERY打造隐藏在左侧的弹性弹出菜单

    代码简介: 隐藏在左侧的弹性弹出菜单,从淘宝扣下来的,也可作为JAvaScript缓冲动画的典型教程.本弹性菜单可扩展性强,实际上不光可以做成菜单,也可布局一些图文混排的内容或一段视频,总之被弹出的内 ...

  9. python tkinter 下拉框_python中tkinter入门之Menu创建顶级菜单、下拉菜单和弹出菜单。...

    创建顶级菜单 Menu 组件通常被用于实现应用程序上的各种菜单.使用add_command可以添加菜单内容.创建后通过root.config()添加到窗口上. from tkinter import ...

最新文章

  1. 为什么叫python编程-中小学生为什么要学Python编程
  2. css textarea行数_限制textarea中的行数并使用jQuery显示行数
  3. 深入浅出Nintex——更新PeopleandGroup类型的Field
  4. 百度地图迁徙大数据_百度地图大数据:五一高速拥堵不似预期,广深成热门迁出入地...
  5. 开源极速的人脸跟踪-基于OpenTLD与RNet
  6. CleanCodeHandbook Chapter 3: Linked List(20-24)
  7. SVN提示: File or directory '*' is out of date; try updating 解决方案 .
  8. composer 介绍及安装
  9. 查看服务器虚拟机版本,查看虚拟机版本命令
  10. 我的知识管理工具列表
  11. 老男孩python全栈3期_Python/Python3视频教程2017老男孩Python全栈工程师3期基础Python3.5...
  12. 虚拟服务器需要备案吗,虚拟主机需要备案吗
  13. Dubbo扩展点注解之@Adaptive
  14. 手把手教你画圆锥渐变
  15. 【ggplot】复杂柱状图:自定义颜色、标签、位置、坐标轴和主题
  16. 傲游浏览器 页面广告过滤 自定义 过滤规则 及使用方法 不定时更新
  17. 谈谈promise,谈谈微任务
  18. 北航计算机组成实验project4,北航fpga实验的报告.docx
  19. flask搜索引擎whoosh的配置
  20. LVS负载均衡集群服务搭建详解

热门文章

  1. I3 Dialer之蜻蜓点水(一)
  2. 100盏灯泡的开关问题
  3. wireshark教程
  4. 华为云IoT智慧物流案例01 | 背景介绍与环境搭建
  5. Intel平台不可忽略的接口eSPI
  6. 虎年姓氏头像微信小程序源码+AI智能配音小程序源码+喝酒娱乐多功能小程序源码
  7. [精彩短句]看到哪你流泪了
  8. linux用终端算圆的面积,简单粗暴:用霰弹枪计算圆周率π
  9. python培训大概要学多久
  10. 灵通财务软件总帐子系统需求规格书之一 (转)