MFC学习笔记(四)——菜单

(一)菜单命令的路由

1.响应菜单项命令的顺序依次是:视类、文档类、框架类,最后是应用程序类。

2.Windows消息的分类

  • 标准消息:除WM_COMMAND之外,所有以WM_开头的消息都是标准消息。从CWnd派生的类都可以接收到这类消息。
  • 命令消息:来处菜单、加速键或工具栏按钮的消息。这类消息以WM_COMMAND的形式呈现。通过其ID来区分。
  • 通告消息:由控件产生的消息。其也以WM_COMMAND形式呈现。

3.CWnd类派生于CCmdTarget类,凡是从CWnd类派生的类,它们既可以接标准消息,也可以接收命令消息和通告消息。而从  CCmdTargt派生的类,则只能接收命令消息和通告消息,不能接收标准消息。

4.菜单命令的路由的具体过程:当点击某个菜单项是地,最先接收到这个菜单命令消息的是框架类。框架类把接收到的这个消息交给它的子窗口,即视类,由视类首先进行处理。视类首先根据命令消息映射机制查找自身是否对此消息进行了响应,如果响应了,就调用相应响应函数对这个消息进行处理,消息路由过程结束;如果视类没有对这个消息做出响应,就交给文档类,文档类如果能处理就处理,路由结束,不能处理就交还给视类,再由视类交还给框架类。框架类如果能处理就处理,路由结束,如果不能处理,就交给应用程序类,由它来处理。

(二)基本菜单操作

1.实现标记菜单(在CMainFrame类的OnCreate函数最后添加代码):

在【文件】子菜单中的【新建】菜单项实现

或:

2.实现默认菜单项:(在【文件】子菜单下的【打开】实现)

或:

一个子菜单只能有一个默认菜单项。

3.图形标记菜单:

首先,在CMainFrame类添加一个CBitmap类型的成员变量,m_bitmap.

在OnCreate函数中添加:

当然,得先创建一个IDB_BITMAP的位图资源,并且这幅位图不能太大,否则无法全部显示出来,具体多大可以通过 GetSystemMetrics函数得到图形标记菜单上显示的位图的尺寸。

......

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值