【发布时间】:2009-08-29 02:29:26
【问题描述】:
我正在尝试在 win32 中编写 hello world,但是当我关闭主窗口时,应用程序继续运行
我的窗口程序:
LRESULT CALLBACK MainWndProc(HWND hWnd, UINT msg, WPARAM wparam, LPARAM lparam)
{
switch (msg)
{
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hWnd, msg, wparam, lparam);
}
事件循环:
while ((bret = GetMessage(&msg, hWndMain, 0, 0) != 0)
{
if (bret == -1)
{
DWORD error = GetLastError();
return 1;
}
TranslateMessage(&msg);
DispatchMessage(&msg);
}
现在,然后我通过单击右上角 x 获得 WM_DESTROY,而不是 GetMessage() 返回 0 表示获得 WM_QUIT,而是返回 -1 并且 GetLastError() 抱怨错误 1400,即“无效窗把手” ...我很困惑。
【问题讨论】: