我正在学习Win32 API。我有一个问题,窗口是明显关闭但应用程序在后台运行(我可以使用Windows 10任务管理器看到这一点)。这是关闭窗口的代码:
case WM_CLOSE:
DestroyWindow(hwnd);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
我的应用程序名为a.exe,您可以在我使用Windows 10任务管理器的屏幕截图中看到它。
答案 0 :(得分:2)
阅读docs:
" PostQuitMessage函数将WM_QUIT消息发布到线程的消息队列并立即返回;该函数简单地向系统指示线程在将来的某个时间请求退出。 当线程从其消息队列中检索WM_QUIT消息时,它应该退出其消息循环并将控制权返回给系统。返回给系统的退出值必须是WM_QUIT消息的wParam参数。
WM_QUIT消息与窗口无关,因此永远不会通过窗口的窗口过程接收。它仅由GetMessage或PeekMessage函数检索。"
另见think link。
答案 1 :(得分:0)
我发现了这个问题。感谢所有帮助,但窗口实际上已关闭,但控制台仍然在后台打开。我在跑:
FreeConsole();
那隐藏了控制台。当我关闭窗口时,控制台一直在运行,我现在正在关闭控制台并且它可以工作。