第六章、菜单

6.1菜单命令响应函数

新建一个单文档工程,命名为Menu。
Resource View->Menu->IDR_MAINFRAME,双击打开下面的如图菜单资源。
在这里插入图片描述
整个栏就是菜单,里面的每一个按钮就是菜单项。

在帮助菜单项后面添加一个自定义菜单项:
鼠标右键单击虚线框->Properties,出现下图菜单项属性对话框,将菜单项名称->Test,即Caption编辑框->Test。
就可以出现一个自定义菜单项。
在这里插入图片描述

这些顶层菜单项ID都是灰色,不能修改和输入;但是这些顶层菜单项的子菜单项,例如新建,他们ID可以修改和输入。
因为,这些顶层菜单项勾选了Pop-up,是一个弹出式菜单,不能响应命令,所以没有ID。将勾选去掉,弹出式菜单项就能变成普通菜单项,可以响应命令,也可以输入修改ID。
将Test勾选去掉,将ID改为IDM_TEST。
在这里插入图片描述

添加Test菜单项的命令响应函数。
在Test上鼠标右键单击->ClassWizard->选择IDM_TEST的COMMMAND消息->AddFunction
在这里插入图片描述
单击EditCode就跳转到OnTest消息响应函数处。
在OnTest函数中添加:MessageBox(“MainFrame Clicked!”);
运行,单击Test菜单项,就会弹出该消息框。
在这里插入图片描述

6.2菜单命令的路由

6.2.1程序类对菜单命令的响应顺序

CMenuDoc和CMenuApp类不是从CWnd类派生而来,所以没有成员函数MessageBox,所以可以使用应用程序框架函数:AfxMessageBox函数。
响应Test菜单项命令的顺序依次是:
视类->文档类->框架类->应用程序类

6.2.2Windows消息分类

标准消息:WM_COMMAND之外,以WM开头的消息,从CWnd派生的类都可以收到该消息。
命令消息:WM_COMMAND消息,菜单栏,加速栏,工具栏按钮的消息。从CCmdTarget派生的类,CWnd,CMenuDoc和CMenuApp类可以收到该消息。
通告消息:控件产生的消息,以WM_COMMAND形式呈现。

6.2.3菜单命令的路由

给视类添加Test菜单项消息响应函数,添加了三处代码:
1、命令消息响应函数的原型
2、添加消息响应函数映射宏
3、命令消息响应函数

响应的顺序:视类->文档类->框架类->应用程序类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

身影王座

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值