弹出菜单TrackPopupMenu与Ctree结合
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结合相关推荐
- 孙鑫VC++深入详解:Lesson6 Part3 ---创建右键弹出菜单 TrackPopupMenu
1 -----增加右键弹出菜单方法一: Project-->Add to Project-->Components and Controls -->Visual C++ C ...
- 通过TrackPopupMenu函数弹出菜单
如果你写一个win32程序,你想在某个条目上鼠标右键,弹出一个简单的菜单,该菜单就有一个选项. 那么,你不用费很大的力气去设计这个菜单,也不需要写一个xml等,你只需要使用TrackPopupMenu ...
- vc+如何添加右键弹出菜单
2019独角兽企业重金招聘Python工程师标准>>> 一.创建新工程 二.编辑菜单资源 1.添加菜单 按"Ctrl+R",双击"Menu"图 ...
- 右键弹出菜单和快捷键的设置
写MFC,少不了用到菜单和快捷键,此处我用到了右键菜单.我的项目是一个播放器的实现,那么在屏幕中央右键点击,应该会弹出右键菜单,比如播放,暂停等,如我这样: 对应的每一个菜单应该还有相应的快捷键.那么 ...
- 梦想CAD控件网页版右键弹出菜单
用户需要右键弹出菜单,则需要响应鼠标事件,右键按下后,弹出菜单分为在命令下运行及在非命令下运行,具体介绍如下 : 一.新建菜单文件 1.新一个文本文件: mxpoptest.mnu,内容如下(此文件为 ...
- 梦想CAD控件com接口界面控制右键弹出菜单
用户需要右键弹出菜单,则需要响应鼠标事件,右键按下后,弹出菜单分为在命令下运行及在非命令下运行,具体介绍如下(C#语言参考例子:"samples\CSharpRightKeyMenu\CSh ...
- c语言怎样响应右键弹出窗口,MFC创建右键弹出菜单的方法
本文实例讲述了MFC创建右键弹出菜单的方法.分享给大家供大家参考.具体实现方法如下: ①.添加一个菜单资源,ID为IDM_RIGHTMENU.因为在显示右键菜单时顶级菜单是不显示的,所以可以给它设置任 ...
- JQUERY打造隐藏在左侧的弹性弹出菜单
代码简介: 隐藏在左侧的弹性弹出菜单,从淘宝扣下来的,也可作为JAvaScript缓冲动画的典型教程.本弹性菜单可扩展性强,实际上不光可以做成菜单,也可布局一些图文混排的内容或一段视频,总之被弹出的内 ...
- python tkinter 下拉框_python中tkinter入门之Menu创建顶级菜单、下拉菜单和弹出菜单。...
创建顶级菜单 Menu 组件通常被用于实现应用程序上的各种菜单.使用add_command可以添加菜单内容.创建后通过root.config()添加到窗口上. from tkinter import ...
最新文章
- 为什么叫python编程-中小学生为什么要学Python编程
- css textarea行数_限制textarea中的行数并使用jQuery显示行数
- 深入浅出Nintex——更新PeopleandGroup类型的Field
- 百度地图迁徙大数据_百度地图大数据:五一高速拥堵不似预期,广深成热门迁出入地...
- 开源极速的人脸跟踪-基于OpenTLD与RNet
- CleanCodeHandbook Chapter 3: Linked List(20-24)
- SVN提示: File or directory '*' is out of date; try updating 解决方案 .
- composer 介绍及安装
- 查看服务器虚拟机版本,查看虚拟机版本命令
- 我的知识管理工具列表
- 老男孩python全栈3期_Python/Python3视频教程2017老男孩Python全栈工程师3期基础Python3.5...
- 虚拟服务器需要备案吗,虚拟主机需要备案吗
- Dubbo扩展点注解之@Adaptive
- 手把手教你画圆锥渐变
- 【ggplot】复杂柱状图:自定义颜色、标签、位置、坐标轴和主题
- 傲游浏览器 页面广告过滤 自定义 过滤规则 及使用方法 不定时更新
- 谈谈promise,谈谈微任务
- 北航计算机组成实验project4,北航fpga实验的报告.docx
- flask搜索引擎whoosh的配置
- LVS负载均衡集群服务搭建详解