- 现在直接给出MFC程序执行顺序,但着重分析其运行机制和功能分析,其流程是“theApp全局对象定义->TestApp构造函数->WinMain函数”。在执行theApp对象的构造函数之前先执行CWinApp基类的构造函数,从而把我们自己创建的类和MFC类相关联起来了。

- 文档应用程序中,都有五个类,部分类名和工程名相关联。在MFC程序有且仅有一个从应用程序类(CWinApp)派生的类,而且仅有一个该派生类的实例化对象

每个窗口会有一个称为窗口过程的回调函数(WndProc),它带有四个参数,分别为:窗口句柄(Window Handle), 消息ID(Message ID), 和两个消息参数(wParam, lParam), 当窗口收到消息时系统就会调用此窗口过程来处理消息。(所以叫回调函数)
注意: postMessage发送的消息是队列消息,它会把消息Post到消息队列中; SendMessage发送的消息是非队列消息, 被直接送到窗口过程处理
- PostMessage:把消息放到指定窗口所在的线程消息队列中后立即返回。 PostThreadMessage:把消息放到指定线程的消息队列中后立即返回。
- SendMessage:直接把消息送到窗口过程处理, 处理完了才返回。
- PeekMessage会立即返回 可以保留消息
- GetMessage在有消息时返回 会删除消息
- TranslateMessage: 把一个virtual-key消息转化成字符消息(character message),并放到当前线程的消息队列中,消息循环下一次取出处理。
- TranslateAccelerator: 将快捷键对应到相应的菜单命令。它会把WM_KEYDOWN 或 WM_SYSKEYDOWN转化成快捷键表中相应的WM_COMMAND 或WM_SYSCOMMAND消息, 然后把转化后的 WM_COMMAND或WM_SYSCOMMAND直接发送到窗口过程处理, 处理完后才会返回。
- 首先需要声明消息 #define WM_MESSAGE 0x200
- 声明消息响应函数 在文件中的说明
- 实现消息响应函数
- 消息映射到消息处理函数
本文参考自下面几篇文章
https://blog.csdn.net/huangguangzhi88/article/details/85368700
https://blog.csdn.net/csdn_222/article/details/79404507
https://www.cnblogs.com/liangxiaofeng/p/5084638.html
MFC框架
原文:https://www.cnblogs.com/hit-ycy/p/10927121.html