gpt4 book ai didi

C++ Windows : How to close a console window?

转载 作者:可可西里 更新时间:2023-11-01 14:04:02 25 4
gpt4 key购买 nike

除了主 Win32 窗口之外,我还使用“AllocConsole()` 打开了一个控制台窗口。控制台窗口在主窗口之前打开。

当我关闭主窗口并且程序从主函数返回时,控制台保持打开状态(进程也是如此)。它实际上卡在 ntdll 中的某处,正如调试器在暂停 Visual Studio 2012 程序时显示的那样。

通过单击 X 按钮关闭它会退出进程,但使用 FreeConsole() 关闭它不会,进程仍然在无窗口的情况下工作。

CloseWindow(GetConsoleWindow()) 不会关闭它,它会将它最小化 (!?!)。

PostMessage(GetConsoleWindow(),WM_QUIT,0,0) 关闭窗口,但进程仍在运行(从视觉上看,这与“FreeConsole()`”相同)。

偶尔,程序以正确的方式退出,但每次点击X按钮都有效。

如何执行与单击 X 按钮相同的操作?

最佳答案

使用 PostMessage(wnd, WM_CLOSE, 0, 0) 关闭控制台窗口,但问题可能出在您程序的其他地方,即使它作为修补程序工作。当您从 main()WinMain() 返回时,控制台窗口应该自动关闭/消失。

关于C++ Windows : How to close a console window?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22271920/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com