这里我只是根据自己的项目做了一些总结,实现点击右键弹出菜单项,点左键选择菜单项:

    CMenu menu;
VERIFY(menu.CreatePopupMenu());//新建一个cmenu菜单项
menu.AppendMenuW(MF_STRING, , _T("重定义"));
menu.AppendMenuW(, MF_SEPARATOR);//增加一条直线
menu.AppendMenuW(MF_STRING, , _T("修改"));
menu.AppendMenuW(, MF_SEPARATOR);
menu.AppendMenuW(MF_STRING, , _T("删除"));
menu.AppendMenuW(, MF_SEPARATOR);
CPoint pt;//菜单项弹出点
GetCursorPos(&pt);
menu.TrackPopupMenu(TPM_LEFTBUTTON, pt.x, pt.y, this);//在指定位置显示快捷菜单,这里是左键按钮事件
menu.DestroyMenu();//选择后要销毁菜单项

上面的代码建立了一个菜单项,其中包括三个菜单,分别是“重定义”、“修改”、“删除”。

完成了上面的部分,我们只是建立了一个菜单项,这里我们还需要相应我们选择后的事件,我们需要在该对话框下面完成OnCommand(WPARAM wParam, LPARAM lParam)函数,在这里函数里面,所有的命令都会经过这个函数。本项目中,我们的OnCommand(WPARAM wParam, LPARAM lParam)函数为:

BOOL CSdPalette::OnCommand(WPARAM wParam, LPARAM lParam)
{
// TODO: 在此添加专用代码和/或调用基类
UINT uID = (UINT)wParam;//所选择的项的ID
switch (uID)//判断是选择的哪一项
{
case :
acDocManagerPtr()->sendStringToExecute(curDoc(), _T("REDEFINETY\n"), false, true);//选择为重定义
acDocManagerPtr()->sendStringToExecute(curDoc(), _T("UPDATEPALETTE\n"), false, true);
break;
case :
acDocManagerPtr()->sendStringToExecute(curDoc(), _T("ALTERDEFINETY\n"), false, true);//选择为修改
acDocManagerPtr()->sendStringToExecute(curDoc(), _T("UPDATEPALETTE\n"), false, true);
break;
case :
acDocManagerPtr()->sendStringToExecute(curDoc(), _T("DELETETY\n"), false, true);//选择为删除
acDocManagerPtr()->sendStringToExecute(curDoc(), _T("UPDATEPALETTE\n"), false, true);
break;
default:
break;
}
return CZdUiPalette::OnCommand(wParam, lParam);
}

到了这里也是就完成了一个菜单栏的建立和相应过程!这些只是针对本项目来写的,对于CMenu类还有很多种方法来实现建立菜单和相应,后面遇到了会继续完善此笔记。

建立CMenu菜单项,实现选中菜单项点击左键响应事件的更多相关文章

  1. [MFC] 对话框菜单项Menu选中打勾(单选,多选)

    近期需要实现一个功能:MFC对话框中,一项菜单下有五个菜单项,改变菜单项选中状态,每次只能选择其中一个打勾.(单选) 然后在网上搜了下资料,稍微总结下,以防后面用到. 1.单选实现: CMenu* m ...

  2. menu菜单项和menubutton菜单按钮的结合使用

    <!--创建需要显示的菜单按钮(munebutton),menu指定的是菜单项--><a href="javascript:void(0)" id="m ...

  3. java学习:AWT组件和事件处理的笔记(1)--菜单条,菜单,菜单项

    菜单放在菜单条里,菜单项放在菜单里1.MenuBar    在java.awt包中,负责创建菜单条,即MenuBar的一个实例,便是一个菜单条.    在Frame类中的setMenuBar(Menu ...

  4. Unity 3D编辑器扩展介绍、教程(一) —— 创建菜单项

    Unity编辑器扩展教程 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 一 Brief Introduct ...

  5. jQuery 关于点击菜单项,使子条目“向上”展开效果的实现

    为什么做了这样一个的功能呢?原因是前一段时间jQuery群里有个朋友想实现这样一个东东,大家都知道jQuery中有现成的slideDown和slideUp方法,但那是向下展开,而这个是一个完全相反的效 ...

  6. 【独立开发人员er Cocos2d-x实战 009】Cocos2dx 菜单项CCMenu使用

    Cocos2dx中的菜单用CCMenu/Menu类来实现.该类是一个容器.用来装载各种菜单项,用于菜单项能够是图片.系统字体等. 理论就不说了.先上代码: CCMenuItemToggle* item ...

  7. 实战android菜单项之XML加载菜单与动态菜单项[转]

    原文地址:http://blog.csdn.net/kaiwii/article/details/7767225 自定义android应用程序的菜单项首先要知道切入点.经过学习,知道主要是两个Acti ...

  8. 13、Java菜单条、菜单、菜单项

    13.Java菜单条.菜单.菜单项 一般用Java做界面时,都得牵涉到菜单条.菜单.菜单项的设计.菜单项放在菜单里,菜单放在菜单条里,且其字体均可设置. 13.1.菜单条(Menubar) Frame ...

  9. 在Winform界面菜单中实现动态增加【最近使用的文件】菜单项

    在我们一些和文件处理打交道的系统中,我们往往需要记录下最近使用的文件,这样方便用户快速打开之前浏览或者编辑过的文件,这种在很多软件上很常见,本文主要介绍在Winform界面菜单中实现[最近使用的文件] ...

随机推荐

  1. pywinauto处理UI自动化

    之前一个项目的特殊性, 以及一些操作权限上的问题,不能使用现有工具进行UI自动化. 在一些资深tester建议下决定采用Python的pywinauto模块来处理Windows控件的UI操作. 1. ...

  2. jQuery插件学习基础

    1.给jQuery添加全局的函数: $.zgz={  fn1:function(){ alert('我是刚设置的第一个全局函数') },fn2:function(){ alert('我是刚设置的第二个 ...

  3. List,Set,Map三种接口的区别

    set --其中的值不允许重复,无序的数据结构 list   --其中的值允许重复,因为其为有序的数据结构  map--成对的数据结构,健值必须具有唯一性(键不能同,否则值替换)   List按对象进 ...

  4. DjangoRestFramework的外键反向关系序列化的一个问题

    先用文档中的样例: Models定义: class Album(models.Model): album_name = models.CharField(max_length=100) artist ...

  5. SublimeText3常用快捷键和优秀插件

    SublimeText3常用快捷键和优秀插件 SublimeText是前端的一个神器,以其精简和可DIY而让广大fans疯狂.好吧不吹了直入正题 -_-!! 首先是安装,如果你有什么软件管家的话搜一下 ...

  6. MySQL-数据检索

    MySQL简介 1.什么是数据库 ? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅 ...

  7. 使用Selenium对新浪微博模拟登录

    Selenium的配置 在项目中引入Selenium库 下载chromedriver.exe 在项目代码中加入chromedriver位置的配置 使用Selenium Selenim语法 智能等待 隐 ...

  8. 运算符优先级--C

    优先口决 括号成员第一; //括号运算符[]() 成员运算符. -> 全体单目第二; //所有的单目运算符比如++ -- +(正) -(负) 指针运算*& 乘除余三,加减四; //这个& ...

  9. Python进阶开发之网络编程,socket实现在线聊天机器人

    系列文章 √第一章 元类编程,已完成 ; √第二章 网络编程,已完成 ; 本文目录 什么是socket?创建socket客户端创建socket服务端socket工作流程图解socket公共函数汇总实战 ...

  10. SVN服务器搭建--Subversio与TortoiseSVN的配置安装(Windows)

    1.  Subversio和TortoiseSVN 简介 Subversio简介: Subversion是一个自由,开源的版本控制系统,可以随意地免费下载.修改.以及重新发布. 是一个通用系统,可以管 ...