一 Win32消息机制
1.消息机制
过程驱动:程序是按照我们预先定义好的顺序执行
事件驱动:程序的执行顺序是无序的。某个时间点所执行的代码,是由外界通知。
Win32的消息机制 —— 事件驱动
2.Win32消息程序
2.1Win32窗口注册
2.2Win32窗口创建
2.3Win32消息循环
2.3.1 GetMessage
PostQuitMessage向窗口发送WM_QUIT消息。
2.3.2 DispatchMessage
根据消息数据内窗口句柄,找到这个窗口,根据窗口处理函数,调用处理函数,进行消息处理。
如果HWND为空不做任何处理。
2.3.3 TranslateMessage
2.4Win32基本消息
2.4.1 WM_DESTROY窗口销毁时的消息,可以做退出处理。
2.4.2 WM_CREATE窗口创建后,窗口处理函数收到的第一条消息,即窗口创建消息,可以在这个消息内做数据初始化/创建子窗口处理。
WPARAM wParam - 不使用
LPARAM lParma - CreateStruct结构
2.4.3 WM_SIZE窗口大小发生变化时收到此消息,可以在这个消息中调整窗口布局。
WPARAMwParam - SIZE发生变化时的标示
LOWORD(lParam)客户区的宽
HIWORD(lParam)客户区的高
2.4.4 WM_SYSCOMMAND系统命令消息,当点击系统菜单和按钮时会收到。可以在这个消息中提示保存数据等。
wParam- 命令类型
LOWORD(lParam) 水平坐标
HIWORD(lParam)垂直坐标
2.4.5 WM_PAINT绘图消息
2.4.6 鼠标消息
2.4.7 键盘消息
2.4.8 WM_TIMER 定时器消息
2.5消息结构
MSG - 消息结构
2.6 消息的获取和发送
2.6.1 获取GetMessage / PeekMessage
GetMessage 获取消息,阻塞函数
PeekMessage获取消息,非阻塞函数
2.6.2 发送SendMessage / PostMesaage
SendMessage发送消息并等候消息处理结束后才返回
PostMessage发送消息后立即返回