Windows 消息机制初步探索 之 总结
一、消息循环各函数
BOOL GetMessageW(&MSG结构, 0, 0, 0)
等待并获取消息到MSG结构,常规消息返回TRUE,WM_QUIT返回FALSE表示需要退出消息循环。
BOOL TranslateMessage(&MSG结构)
主要作用是将WM_KEYDOWN等键盘消息转换为WM_CHAR等字符消息并加到消息队列,允许在窗口中输入字符。
LONG_PTR DispatchMessageW(&MSG结构)
将窗口消息分发到各消息处理函数。
BOOL TranslateAcceleratorW(窗口句柄, 快捷键句柄, &MSG结构)
根据资源中的快捷键表,将WM_KEYDOWN等键盘消息翻译成对应的WM_COMMAND等菜单消息并分发。
BOOL IsDialogMessageW(对话框句柄, &MSG结构)
处理并分发对话框消息,允许使用Tab等按键移动焦点。
二、常用消息发送函数
BOOL PostThreadMessageW(线程ID, 消息, 相关参数1, 相关参数2)
发送线程消息到该线程的消息队列,该消息的hwnd=0。
BOOL PostMessageW(窗口句柄, 消息, 相关参数1, 相关参数2)
发送窗口消息到窗口所属线程的消息队列。
LONG_PTR SendMessageW(窗口句柄, 消息, 相关参数1, 相关参数2)
直接将消息发送到窗口的消息处理函数并等待返回,一般不用担心线程同步、进程间通信等问题。
PostQuitMessage(返回值)
向当前线程发送WM_QUIT消息,返回值储存在msg.wParam中。
-