Win32应用程序不会被破坏

时间:2015-10-31 14:28:41

标签: c++ winapi

我正在学习Win32 API。我有一个问题,窗口是明显关闭但应用程序在后台运行(我可以使用Windows 10任务管理器看到这一点)。这是关闭窗口的代码:

case WM_CLOSE:
    DestroyWindow(hwnd);
break;

case WM_DESTROY:
    PostQuitMessage(0);
break;

我的应用程序名为a.exe,您可以在我使用Windows 10任务管理器的屏幕截图中看到它。

It is a.exe

2 个答案:

答案 0 :(得分:2)

阅读docs

" PostQuitMessage函数将WM_QUIT消息发布到线程的消息队列并立即返回;该函数简单地向系统指示线程在将来的某个时间请求退出。 当线程从其消息队列中检索WM_QUIT消息时,它应该退出其消息循环并将控制权返回给系统。返回给系统的退出值必须是WM_QUIT消息的wParam参数。

WM_QUIT消息与窗口无关,因此永远不会通过窗口的窗口过程接收。它仅由GetMessage或PeekMessage函数检索。"

另见think link

答案 1 :(得分:0)

我发现了这个问题。感谢所有帮助,但窗口实际上已关闭,但控制台仍然在后台打开。我在跑:

FreeConsole();

那隐藏了控制台。当我关闭窗口时,控制台一直在运行,我现在正在关闭控制台并且它可以工作。