深入浅出MFC:MFC的消息机制

本文深入探讨MFC中的消息机制,从消息循环到消息映射,结合设计模式如观察者模式和命令模式进行解释。讲解了MFC窗口函数的一般形式,并介绍了如何通过命令模式降低窗口方法与具体行为的耦合。
摘要由CSDN通过智能技术生成

对与这一部分如果有不理解,请先学习设计模式中的观察者模式与命令模式(手动微笑)

对于一个Windows程序,在进行完基本的初始化工作之后,则就将开始进行最最重要也是难以理解的部分:消息循环与消息映射

最简单的消息循环不过如下:

while (GetMessage(&msg, ...)) {
	TranslateMessage(&msg);  //转换键盘消息
	DispatchMessage(&msg);   //分发消息
}
首先,第一步
TranslateMessage(&msg)则是为了将键盘消息转化,而第2句DispatchMessage(&msg)则会将消息分发给窗口函数去处理,消息产生之时操作系统会根据当初状态,为其
标明所属窗口,而窗口所属的窗口类一开始产生指出就已经明白地标识了窗口函数,所以消息就这样被分发到了指定的窗口之中,对于这一部分其实如果有写过MVC或者
其它相关的观察者模式的例子应该会很好理解这一部分。

这里顺便值得一提的是MFC中的窗口函数,对于MFC的窗口函数,其函数的形式总是保持如下形式:

LRESULR CALLBACK WndProc(HWND hWnd,
	                     UINT message,
	                     WPARAM wParam,
	                     LPARAM lParam)
无论什么消息,被发送给窗口函数之后都将会被处理,而处理的方法就是最简单的
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值