MFC 菜单相关(孙鑫)

三种消息的分类及其对应的响应类

理解类和资源的关系,通常类中会有一个成员变量作为指向资源的句柄,这样可作为参数传给类的成员函数

通常类对象不能定义为局部变量,否则对象作用的作用域结束后(通常为右花括号)对象会被析构,相应资源也会被销毁

就看不到应该具有的显示效果

声明为类的成员变量,也可以在局部变量的情况下调用Detach函数解除对象与资源的绑定

菜单  子菜单  菜单项 的对应关系,掌握用ID和Position两种方式访问菜单项的方法

CMainFrame为CView的父类,其覆盖在前者的客户区上,标准菜单是属于CMainFrame的资源,创建时在其客户区上显示

可以自定义菜单(静态或者动态),并且定义其属于的类,有时候需要将其分配给Cview类(如右键弹出菜单)

更换显示菜单的方式是先将菜单赋空,然后再调用LoadMenu函数

让菜单栏重绘调用cwnd::DrawMenuBar

CDC类中封装了与绘图相关的操作,一般绘图的基本逻辑先是创建一个“工具”给一个窗口,根据相应设置执行绘图操作,而无须关注绘图

操作底层的细节

CFrame::GetActiveView()获得当前视图对象的指针,CFrame中打开的多个view都是他的子对象,掌握MFC中Doc APP View是通过框架类三个实例对象关联在一起的

 

 

消息路由路径为:首先根据消息为命令或者通告消息进行分流

然后 在后面onCmdMessage()函数中会调用一个基类的版本OnCommand,在这个函数中就会根据预定义的顺序进行消息路获得相应,这样响应优先顺序是确定的,要在此优先权中的窗口类中捕获消息,可以给类申明一个虚函数OnCommand,在里面捕获消息并进行相应处理(如CMainFrame拦截CView),在这个函数内部可以考虑是否再调用基类的版本(调用的话,消息路由会重新按顺序进行,不调用其他类被屏蔽,无法捕获到消息)

 

构建DC绘图一般要在CView窗口上,CMainFrame被覆盖,绘图显示不了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值