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

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

每一个窗口会有一个称为窗口过程的回调函数(WndProc),它带有四个参数,分别为:窗口句柄(Window Handle), 消息ID(Message ID), 和两个消息参数(wParam, lParam), 当窗口收到消息时系统就会调用此窗口过程来处理消息。(因此叫回调函数)html
注意: 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
- 声明消息响应函数 在文件中的说明
- 实现消息响应函数
- 消息映射到消息处理函数
本文参考自下面几篇文章post
https://blog.csdn.net/huangguangzhi88/article/details/85368700spa
https://blog.csdn.net/csdn_222/article/details/79404507.net
http://www.javashuo.com/article/p-tahcdjuz-kk.html线程