首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

Window关于关掉窗口后,程序仍运作

2013-10-27 
Window关于关掉窗口后,程序仍运行错误:(关掉后仍在后台运行)MSG Msgwhile(GetMessage(&Msg,Hwnd,0,0)){Tr

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拿出来死掉吗
[解决办法]
送入当前线程的消息队列

热点排行