获取消息

GetMessage (&msg, NULL, 0, 0);
从消息队列取消息, 没有则函数阻塞等待消息,如果得到了消息,是 wm_quit 消息,立马返回 false,如果不是则返回 true

PeekMessage (&msg, NULL, 0, 0, PM_REMOVE);
从消息队列取消息, 只要有不管类型都返回 true,没有就返回 false

发送消息

SendMessage (hWnd, WM_KEYDOWN, 0, 0 );
可以理解为递归,直接把消息投递给该窗口对应的消息处理函数。
在调用该函数时,会立马再调用消息处理函数对发送的消息进行响应。

PostMessage (hWnd, WM_KEYDOWN, 0, 0 );
可以理解为排队,把消息投递给这个窗口对应的消息队列,以供下一次
去得到消息。被发送的消息进入消息队列的尾部,且不会调用消息处理函数。