vc动态添加弹出菜单和响应函数

VS2010的动态菜单 在VS2010开发过程中,根据用户登录建立不同内容功能的菜单。 立即下载

备忘:mfc中利用CMenu类动态添加弹出菜单和响应函数

步骤:

1 声明一个菜单:

    CMenu menu;

2 生成菜单对象:  

    menu.CreatePopupMenu();

3 给菜单添加上内容:

   menu.AppendMenu(MF_STRING,WM_CLEARHOSTS,"清除HOSTS"); 

AppendMenu函数具体的意义可以查看MSDN,其中WM_CLEARHOSTS为自定义的一个消息,最后一个参数为菜单的text,点击这个菜单就可以调用WM_CLEARHOSTS消息的处理函数。

4 添加子弹出菜单:

    CMenu submenu;

    submenu.CreatePopupMenu();

    menu.AppendMenu(MF_POPUP,(UINT_PTR)(submenu.m_hMenu),"sub");

5 设置当失去焦点时菜单自动消失

    SetForegroundWindow();

6 设置菜单的位置:

    menu.TrackPopupMenu();

 

以上各步连接起来就是一个完整的动态生成菜单的步骤,当动态生成的菜单很多且菜单又不固定的时候,预先

为每个菜单都定义一个消息和消息处理函数是很麻烦且不现实的,现在介绍一种方法来动态响应动态生成的菜单。

其原理就是利用OnCommand函数。

首先,要为每一个动态生成的菜单指定一个ID,方式如下

    menu.AppendMenu(MF_STRING,ID,"yourMenuName");

其中参数ID为一个唯一的整数,可以由你自己指定,当鼠标单击此菜单的时候,系统发送一个消息,此消息优先

被OnCommand函数接收,OnCommand函数的原形为:

BOOL OnCommand(WPARAM wParam, LPARAM lParam);

假如你指定菜单的ID为10001,响应函数的具体写法为:

BOOL OnCommand(WPARAM wParam, LPARAM lParam)

{

    int menuID = LOWORD(wParam);
    if(menuID > 10000)

    {

      //添加你自己的处理代码

    }

}

如果是使用对话框的mfc,自己重载OnCommand函数即可

【保研面试】线性代数面试复习 线性相关和无关 有向量组A,a1,a2…an , 如果存在不是全为0的k1,k2…kn,满足 a1 * k1 + a2 * k2… an * kn = 0 则向量组A称为线性相关(可以跟向量组A共面联系,即可以通过几个向量,表示出另外几个向量,故称为线性相关) 极大线性无关组 设有向量组A a1,a2…an(本身为线性相关) :若选出r个向量,满足以下条件 (1)向量组 r : 线性无关; (2) 向量组A中任意r+1个向量(若有的话)都线性相关, 则向量组r 是向量组A的一个极大线性无关组(简称为 阅读详情

相关推荐

J-Flash手动添加华大HC32F460型号全攻略

在嵌入式开发中,Flash编程算法是连接调试工具与微控制器的重要桥梁,它定义了芯片存储器的擦除、编程和校验等底层操作规范。其原理是通过调试接口将算法代码加载到目标芯片的RAM中执行,从而实现对Flash存储器的访问与控制。这项技术的核心价值在于打破了工具链对芯片型号的固有支持限制,使得开发者能够灵活适配各种新兴或定制化的微控制器。在工程实践中,当面对J-Link等主流调试器官方支持包更新滞后时,手动添加芯片型号成为保障开发效率的关键技能。本文以华大半导体的HC32F460系列MCU为例,详细解析了如何通过配

weixin_29192365的博客 353

VC6中菜单的响应消息

Cl)在工作区窗口中选择资源视图(ResourceView),用鼠标右键单击一个节点,在弹出的快捷菜单中选 择Insert命令,将打开插入资源对话框。 (2)在资源类型列表中选择Menu节点,单击New按钮,将创建一个菜单。 (3)在菜单设计窗口中按Enter键打开属性窗口,在Caption编辑框中设计菜单标题。 (4)在新建菜单下的虚线框上按Enter键打开属性窗口可以添加子菜单,在属性窗

sanqima的专栏 2993

企业微信消息推送API实战:5步搞定可信IP与域名配置(含Python代码示例)

本文详细解析了企业微信消息推送API实战中的关键配置步骤,特别是可信IP与可信域名的配置流程。通过5个清晰步骤,结合Python代码示例,指导开发者快速完成安全通信链路搭建,避免常见错误,确保消息推送服务稳定可靠。

qsc9012345的博客 998

VC中给菜单项增加响应函数

如下:假如映射到CMainFrame     //{{AFX_MSG(CMainFrame)     afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);     afx_msg void OnViewProperty();     afx_msg void OnSize(UINT nType, int cx, int cy);    

独旅天涯 1407

Anaconda下安装LabelImg

Anaconda下安装LabelImg

LYH8543的博客 758

TEC 高精度控温算法:实现精准升降温与恒温控制

本文深入解析了TEC高精度控温算法的核心原理与工程实践。针对TEC非线性、时变的特性,算法通过智能状态机实现精准升降温与恒温控制,并详细阐述了参数整定、硬件协同及调试优化的系统性方法,为半导体激光器、PCR仪等高精度温控应用提供了一套完整的解决方案。

weixin_29212867的博客 1013

使用VC++6.0实现添加菜单功能,以及函数的实现

详见B站av17669542,里面有关于实现菜单的添加与函数的实现。

weixin_42327834的博客 1184

从FOC到你的无人机:深入浅出讲透Clark/Park变换在无刷电机控制中的核心作用

本文深入解析Clark变换与Park变换在无刷电机控制中的核心作用,揭示其如何将三相交流电转换为旋转坐标系下的直流量,实现无人机电机的高效精准控制。通过STM32硬件加速和工程实践案例,展示这对数学变换如何成为FOC算法的神经中枢,大幅提升系统响应速度和能效表现。

weixin_42628941的博客 169

MFC 动态菜单 及响应(转)

做一个MFC程序的时候碰到一个需求。就是需要根据定制情况,动态生成菜单,菜单的具体结构和信息是之前不知道的(因此不能利用工具构造),点击不同类型的菜单会触发特定的一类事件(需要动态绑定事件)。这种需求实际是蛮不BT的,很多场合下都可能会有,用C#写了个Demo花了不到半个小时。但转到MFC下来写,就费尽周折。其实这个问题代表了在MFC中动态创建资源绑定事件的一般性问题,所以总结一下。 动态创...

zlunan的专栏 445

Ubuntu22.04下安装LDAP

在Ubuntu22.04的时候可以使用apt的方式来安装,在安装LDAP的web 服务器的时候可以考虑选择 LDAP 帐户管理器 (LAM)。因为 PHPLDAPadmin 安装时需要 php 的环境依赖,相对来说安装麻烦。此外在 PHPLDAPadmin 中创建组织和用户时与平常的语法有很大不同,对新手来说不友好。

dl_11的博客 3944

阿里云CDN HTTPS 证书配置流程

可以使用HTTPS方式访问资源,如果浏览器中URL旁边出现锁的HTTPS标识,表示HTTPS安全加速已生效。: 证书配置完成后,需要留意证书过期时间并在证书过期前手动配置新的证书。注意 ⚠️ 一定是需要复制 以下标识之间的内容。如果已在阿里云数字证书管理服务中购买了证书,请选择。,该证书将在阿里云数字证书管理服务中保存。如果使用第三方服务商签发的证书,请选择。第四步,在指定域名的左侧导航栏,单击。第二步,在左侧导航栏,单击。开关,并配置证书相关参数。页面,找到目标域名,单击。中选择已购买的证书。

w风雨无阻w的专栏 2212

vc++ 弹出式菜单的创建和响应函数

vc++制作的弹出式菜单和相应(含源代码) 弹出式菜单其实也是一种菜单,只不过每一个菜单子项是弹出式的。

晓兵专栏 2072

在 SAP 里玩转 FTP:标准程序 RSFTP00x 全景解析与落地实践

摘要:SAP系统通过封装的标准FTP程序(RSFTP001-008)提供便捷的文件传输能力,适用于各类集成场景。关键点包括:1)依赖SAPFTP可执行程序和RFC目的地;2)使用RSFTP005进行前置检查并生成RFC配置;3)标准报表各司其职,如RSFTP002用于命令测试、RSFTP007/008提供参考实现;4)开发时组合FTP_CONNECT/COMMAND/DISCONNECT等函数模块。特别注意前台(SAPFTP)与后台(SAPFTPA)的环境差异,这是常见故障点。该方案通过标准化工具链显著降低

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 211

MFC学习:(三)菜单编程

MFC学习:(三)菜单编程 文章目录一、创建新的菜单项二、消息机制:三、标记菜单的创建1.相关重要函数:四、命令更新机制五、利用vc的工具栏设置右键弹出菜单六、用代码完成右键弹出菜单七、动态菜单编程八、手动给动态菜单项添加响应函数:九、集合类:十、OnCommand函数:源码总结 一、创建新的菜单项 点击resource->menu MFC中的顶层菜单默认为弹出菜单(Pop-up),它是不能用来作命令响应的,当取消Pop-up选项后可接受命令响应。 二、消息机制: [标准消息]:除WM_COM

weixin_44899437的博客 1454

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

孙鑫VC++深入详解:Lesson6 Part5--- 给自建的动态子菜单配置COMMAN消息响应函数

在MainFrm.cpp文件中的 int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)  中创建好子菜单: CMenu menu; menu.CreatePopupMenu(); //初始化对象menu --- 创建一个空的弹出菜单 GetMenu()->InsertMenu(2,MF_BYPOSITION|MF_POPUP,(U

-----------------------------不要在跟自己无关的事情上浪费时间 2490

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

VC菜单编程

菜单命令的路由 命令消息是由OnCommadn这个函数来处理的 当单击菜单项参数命令消息后。框架类会收到此条消息,然后框架类会把消息给视类。视类会查找自己是否对该消息作出响应,如果有,则进行相应的处理结束路由过程。没有则交给文档类,文档类也会查找是否对消息做出响应,作出了则结束,否则 又给视类,视类又给框架类,框架类又给应用程序类。 屏蔽菜单项,使之不能用  (需要在CMainFr

u011760757的专栏 689

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

孙鑫VC学习笔记:第六讲

六、菜单2006年8月3日第六讲三个多小时,花了我两天时间才看完,然后用OneNote花花绿绿地做了好多笔记,可以说是图文并茂,但是这里显示不出来,所以做了一张抓图,图片地址:http://img565.photo.163.com/goodmoood/61588745/1745167041.gif  孙鑫VC++讲座笔记-(6)菜单编程   

遐迩思的专栏 3432

VC视频教程笔记(第6课)

http://www.sunxin.org/forum/thread/210.html?page=1 作者:虎非龙 第6课 1.当对某菜单添加消息响应函数时,4个类的消息响应优先次序分别是:1.View;2.CDOC;3.CMainFrame.4.CWinAPP.为什么?请参阅《深入浅出》 2.消息分类:a;标准消息(以WM_开头的消息,但不包括ON_COMMAND);b;命令消息 ...

Lam Peter's blog 152

使用VC2005一些问题及解决方案[转]

首先是我使用VC2005在不通阶段的不通感受:刚开始安装VS2005时候感觉:真是大啊!装了我一个上午!!而且运行个VC有时能耗我好大的内存。。刚使用VC2005时候的感受:界面挺不错,貌似功能更强大,对C++标准支持的很好,还可以用我最喜欢的Comic Sans MS字体,还支持代码收缩等等。。虽然比较慢,但是不像VC6.0那样老是出现编译死机的情况。开始用VC2005学习写东西

hndksztwj的专栏 1240

VC编程练习之API笔记(五)—动态菜单的制作

1、  添加动态菜单并相应消息函数: (1)、进入resource.h文件添加动态生成的菜单的ID号:       #define    IDM_TEST1     001 (2)、进入MainFrame.h添加响应菜单项函数的声明:       afx_msg void OnTest1(); (3)、进入MainFrame.cpp添加响应函数的消息映射:       ON_COMMA

南城故梦的专栏 1293

MFC(菜单,孙鑫C++第六讲笔记整理)

1.当对某菜单添加消息响应函数时,4个类的消息响应优先次序分别是:a.View;b.CDOC;c.CMainFrame.d.CWinAPP.为什么?请参阅《深入浅出》   2.消息分类:a;标准消息(以WM_开头的消息,但不包括ON_COMMAND);b;命令消息 ON_COMMAND(IDM_PHONE1, OnPhone1),菜单和工具栏的消息。c.通告消息:按钮,列表框发出的消息。

hellokazhang的博客 5559

VC视频教程笔记(第六课)

1.当对某菜单添加消息响应函数时,4个类的消息响应优先次序分别是:1.View;2.CDOC;3.CMainFrame.4.CWinAPP.为什么?请参阅《深入浅出》 2.消息分类:a;标准消息(以WM_开头的消息,但不包括ON_COMMAND);b;命令消息 ON_COMMAND(IDM_PHONE1, OnPhone1),菜单和工具栏的消息。c.通告消息:按钮,列表框发出的消息。 CCmd

Welcom to zougangx's blog 542

孙鑫VC++视频学习笔记之5: VC菜单相关编程

<br />  阅读本文前,我们假设您已经:<br />   1,知道如何创建一个单文档的App Wizard<br />   2,知道C++ 类、函数重载等简单知识<br />   3,知道如何给View类或者Doc文档添加成员变量<br />   4,会用MFC的IDE调试工具最好,那么本文的程序您可以copy去调试<br />   5,知道如何为某个框架类添加虚函数或消息处理函数<br /><br />  一、 消息的分类:<br /><br />  消息的分类:标准消息,命令消息,通告消息。<br

Bilter的专栏 1682

vc_mfc_菜单

 菜单 1,弹出菜单;  *属性: POPUP,不能响应消息;  *菜单中消息传递顺序:    建一个新的菜单,在CMainFrame,CView,CApp,CDoc中分别加入对菜单的响应,查看顺序;   CView优先,其他类不再起作用;     CDoc次之;   CMainFrame第三;   CApp最后;  *命令消息被ONCOMMAND()传入CMainFrame()处理;CMainFrame()将消息传入其子窗口CView();   CView()若没有响应,则传给CDoc();   CDoc

felix_wxj的专栏 854

使用VC2005一些问题及解决方案

首先是我使用VC2005在不通阶段的不通感受: 刚开始安装VS2005时候感觉:真是大啊!装了我一个上午!!而且运行个VC有时能耗我好大的内存。。 刚使用VC2005时候的感受:界面挺不错,貌似功能更强大,对C++标准支持的很好,还可以用我最喜欢的Comic Sans MS字体,还支持代码收缩等等。。虽然比较慢,但是不像VC6.0那样老是出现编译死机的情况。 开始用VC2005学习写东西的时

痞子龙3D编程 2522
上一篇: vc 对话框操作
下一篇: 对话框最小化到系统托盘
zhsp1029
博客等级 码龄21年 115粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值