MFC小总结_1

     SDK的消息实现机制:

1)Windows的消息和线程是相对应的,即windows会把消息发送给和消息相对应的线程。

2)在SDK模式下,程序是通过GetMessage函数从某个线程相对应的消息队列中取出来并放到MDG里面

3)TranslateMessage函数把消息翻译成字符消息并放到响应的消息队列中,最后DispachMessage函数把消息分发到相关的窗口过程。窗口过程根据消息类型对不通消息进行处理

     MFC的消息实现机制:上实例(trafficlight)

BEGIN_MESSAGE_MAP(CInheritClass, CBaseClass)
ON_COMMAND(ID_FILE_PRINT, &CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT,
&CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW,
&CView::OnFilePrintPreview)
ON_WM_TIMER()
ON_COMMAND(ID_START, &CthirdView::OnStart)
ON_COMMAND(ID_STOP, &CthirdView::OnStop)
END_MESSAGE_MAP()
 
函数AfxWndProc接收Windows操作系统发送的消息。

函数AfxWndProc调用函数AfxCallWndProc进行消息处理,这里是把对句柄的操作转换成对CWnd对象的操作。
函数AfxCallWndProc调用CWnd类的函数WindowProc进行消息处理。注意AfxWndProc和AfxCallWndProc都是AFX的API函数。而WindowProc已经是CWnd的一个方法。所以可以注意到在WindowProc中已经没有关于句柄或者是CWnd的参数了。WindowProc调用方法OnWndMsg进行正式的消息处理,即把消息派送到相关的方法中去处理。



常用消息:

WM_COMMAND(0x0111 )选择窗口菜单项或某个控件发送一条消息给它的父窗口或按下一个快捷键时产生此消息;
WM_TIMER(0x0113 )发生了定时器事件;

WM_LBUTTONDOWN(0x0201)按下鼠标左键;

WM_LBUTTONDBLCLK(0x0203)双击鼠标左键;
WM_RBUTTONDOWN(0x0204)按下鼠标右键;

WM_RBUTTONDBLCLK(0x0206)双击鼠标右键;

WM_MBUTTONDOWN(0x0207)按下鼠标中键;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值