PostQuitMessage无法结束程序《〈〈高分〉〉》
一个用C++,API写的最基本的程序,只有51行,以下是消息处理函数
LRESULT CALLBACK WindowProc (HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
{
switch (message)
{
case WM_DESTROY:
PostQuitMessage(0);
break;
}
return DefWindowProc(hWnd, message, wParam, lParam);
}
按下关闭按钮后程序没有结束,任务管理器显示其占了90%多的CPU,必须手动结束。请问是什么原因?
[解决办法]
递归啊? 死循环了你
[解决办法]
和PostQuitMessage()没有关系。这里
while (GetMessage (&msg,hwnd,0,0))
{
TranslateMessage (&msg);
DispatchMessage (&msg);
}
改成
while (GetMessage (&msg,NULL,0,0))
{
TranslateMessage (&msg);
DispatchMessage (&msg);
}
就好了
[解决办法]
PostQuitMessage发送WM_QUIT,GetMessage()之后消息循环就结束 了,
再说WM_DESTROY是在调用OnDestroyWindow()发送,