Window关于关掉窗口后,程序仍运行
错误:(关掉后仍在后台运行)
MSG Msg;
while(GetMessage(&Msg,Hwnd,0,0))
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
正确的:
MSG Msg;
while(GetMessage(&Msg,NULL,0,0))
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
问题出现代码:
case WM_DESTROY:
PostQuitMessage(0);
break;
case WM_CLOSE:
if(IDYES==MessageBox(hwnd,"真的要退出?","KMBox",MB_YESNO))
{
DestroyWindow(hwnd);
}
break;
所以问:PostQuitMessage(0);返回的WM_QUIT的归属问题
[解决办法]
如果hWnd为NULL,则GetMessage接收属于调用线程的窗口的消息,线程消息由函数PostThreadMessage寄送给调用线程。
PostQuitMessage寄送一个WM_QUIT消息给线程的消息队列并立即返回;此函数向系统表明有个线程请求在随后的某一时间终止。
这个不是PostQuitMessage发送到线程消息队列
GetMessage拿出来死掉吗
[解决办法]
送入当前线程的消息队列