引言
- Windows中的应用程序通常都是基于消息通信的。消息是Windows操作系统中的一个重要概要念,它是Windows中不同应用程序之间直接交互的基础。
消息
- 系统消息
```cpp
typedef struct tagMSG
{
HWND hwnd; //窗口句柄。
UINT message; //消息类型。
WPARAM wParam; //32位附加信息。
LPARAM lParam; //32位附加信息。
DWORD time; //消息发送时间。
POINT pt; //消息发送时,鼠标所在位置。
} MSG;
//系统消息
```
- 自定消息
消息队列
- 系统消息队列
- 应用程序消息队列
消息循环
1. 用户运行一个应用程序,当用户通过对鼠标,键盘操作应用程序时,由于Windows一直监控着I/O设备,该事件首先会被转化成消息,由windows系统捕获,存放于系统消息队列。
2. Windows系统知道该消息应由哪个应用程序处理,然后拷贝到相应的应用程序消息队列。同时将该消息从系统消息队列中删除。
3. 应用程序的消息循环不断在执行,把消息分发给相应的窗口。
4. 窗口会通过默认的事件函数进行处理,也可以由我们通过重载窗口的事件函数实现特定的处理方式。