PostQuitMessage(WM_QUIT)vs PostQuitMessage(0)

zzz*_*zzz 3 windows api winapi

有什么区别

case WM_DESTROY:
    PostQuitMessage(WM_QUIT);
    break;
Run Code Online (Sandbox Code Playgroud)

case WM_DESTROY:
    PostQuitMessage(0);
    break;
Run Code Online (Sandbox Code Playgroud)

ica*_*bod 9

当您致电时PostQuitMessage,您传递退出代码,而不是消息ID. PostQuitMessage然后将为您生成(并发布)该WM_QUIT消息.

从技术上讲,不同之处在于PostQuitMessage(WM_QUIT),退出代码将是0x0012(或十进制的18).而PostQuitMessage(0)将提供退出代码0.

当任GetMessagePeekMessage看到一个WM_QUIT消息,他们将返回零,您可以检查在退出代码WPARAM中的部分LPMSG参数.

要返回退出代码(传递给PostQuitMessage的值),应用程序的消息泵可能是这样的:

MSG msg;
while (0 != GetMessage(&msg, 0, 0, 0)) {
  TranslateMessage(&msg);
  DispatchMessage(&msg);
}

return msg.wParam;
Run Code Online (Sandbox Code Playgroud)