<深入浅出mfc>第9章和第10章


两章的代码:http://download.csdn.net/detail/caidaoqq/6951975点击打开链接


第九章:消息映射与命令绕行

1.MFC把消息分为三大类:

■ 命令消息(WM_COMMAND):命令消息意味着「使用者命令程序做某些动作」。

凡由UI 对象产生的消息都是这种命令消息,可能来自菜单或加速键或工具栏按钮,并且都以WM_COMMAND 呈现。如何分辨来自各处的命令消息?SDK程序主要靠消息的wParam 辨识之,MFC 程序则主要靠菜单项目的识别码(menu ID)辨识之-- 两者其实是相同的。

凡衍生自CCmdTarget 者,它的骨子里就有了一种特殊的机制。可接受WM_COMMAND消息;

■   标准消息- 除WM_COMMAND 之外,任何以WM_ 开头的都算是这一类。任何

衍生自CWnd 之类别,均可接收此消息。

■ Control Notification -这种消息由控制组件产生,为的是向其父窗口(通常是对框)通知某种情况。

 

 

2.命令消息必须有一个对应的处理函数,把消息和其处理函数「绑」在一块儿,这动作称为CommandBinding,这个动作将由一堆宏完成。

 

3.三个奇怪的宏,一张巨大的网

Message Map 既可说是一套宏,也可以说是宏展开后所代表的一套数据结构;甚至也可以说Message Map 是一种动作,这个动作,就是在刚刚所提的资料结构中寻找与消息相吻合的项目,从而获得消息的处理例程的函数指针。

 

1.      消息分类的原因:因为它们的上溯路径不是那么单纯地只往父类别去,它们可能需要拐个弯。

 

2.      

 

第10章MFC与对话框

1. 设计对话框模板,有两个重要的步骤,第一是从工具箱中选择控制组件(control,功能

各异的小小零组件)加到对话框中,第二是填写此一控制组件的标题、ID、以及其它性

质。

2. 利用ClassWizard 连接对话框与其专属类别

a. 从MFC 的CDialog 中衍生出一个类别,用来负责对话框行为。

b. 利用ClassWizard 把这个类别和先前你产生的对话框资源连接起来。通常这意

味着你必须声明某些函数,用以处理你感兴趣的对话框消息,并将对话框中的

控制组件对应到类别的成员变量上,这也就是所谓的DialogData eXchange

(DDX)。如果你对这些变量内容有任何「确认规则」的话,ClassWizard 也

允许你设定之,这就是所谓的Dialog DataValidation(DDV)。

 

3. 对话框的消息处理函数

a. 在CPenWidthsDlg 中增加两个变量,分别代表粗笔与细笔的宽度。

b. 在CPenWidthsDlg 中增加一个函数,负责【Default】钮被按下后的动作

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值