为什么关闭窗口后进程里还有该进程?

来源:百度知道 编辑:UC知道 时间:2024/05/23 16:26:39
为什么将窗口关闭,操作系统收到PostQuitMessage(0);后进程里还有该进程?
具体语句:case WM_CLOSE:
if (IDYES==MessageBox(hwnd,"真要退出程序吗?","退出",MB_YESNO))
{
DestroyWindow(hwnd);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
消息循环是这样的:
MSG msg;
while(GetMessage(&msg,hwnd,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
如果只有一条语句PostQuitMessage(0);是正确,可是我想用销毁窗口这个语句,应该怎么改?

GetMessage(&msg, NULL, 0, 0)

hWnd
[in] Handle to the window whose messages are to be retrieved. The window must belong to the current thread.

你用模板建立的程序会有两个线程,可能hWnd指向的不是窗口的线程

if (IDYES==MessageBox(hwnd,"真要退出程序吗?","退出",MB_YESNO))
{
PostQuitMessage(0);
}

这个问题好像是消息循环出错了,或者是GetMessage函数获取错误。你把代码贴出来看看


上面的回答是正解

消息循环的代码怎么写的?