【问题标题】:Closing or minimizing the cmd window关闭或最小化 cmd 窗口
【发布时间】:2014-06-19 13:45:14
【问题描述】:

当我启动用 c++ 编写的 windows api 时如何关闭 cmd 窗口,我仍在学习代码,但正在制作一些业余程序,例如 2048 游戏,这是我最新的一个,但同时拥有程序窗口和即使 cmd 在主窗口关闭时关闭,cmd 也会同时打开。

所以我想知道是否有办法将其最小化或(甚至更好)关闭/不打开它。

【问题讨论】:

  • 如果您创建的是 Windows 应用程序而不是控制台应用程序,您甚至不会看到控制台窗口。您使用的是什么编译器/构建系统?视觉工作室?这将有助于我们提供更详细的说明。
  • 是的,VS13,我从未尝试过制作 win 应用程序,只有控制台,因为我仍在学习高级 c++。我确实尝试了几次,但并没有真正适用于常规的 c++ 程序......所以如果我只是选择 win api 并复制我的代码,它不会打开 cmd 窗口?
  • 是的,没错。控制台应用程序的唯一优点是您不必创建自己的窗口来显示输出。 C++ 语言并不复杂,事实上,无论您选择哪种类型的应用程序,它都完全相同。而且由于听起来您已经在创建自己的主窗口,因此您不需要控制台应用程序。标准的 Windows 应用程序可以正常工作。
  • 哇,谢谢,我真的没想到会这么简单......我创建自己的窗口没有问题,仍在学习位图之类的东西,我认为它的方式更多复杂然后只是改变项目类型:))

标签: c++ windows cmd


【解决方案1】:

我知道其他人在 cmets 中为您提供了更好的解决方案。但是我想我会发布你原来问题的答案,以防其他人发现这个问题。

添加此包含文件:#include <Windows.h>

然后在程序开始时运行这个命令:

int main() {

FreeConsole(); // Removes the console window

...
}

【讨论】:

  • 我喜欢这个解决方案,因为它解决了问题,但没有解决 IDE 特定的细节,如“项目类型”或在特定产品中称为什么。
  • @Brandin 它还可以非常方便地禁用/启用控制台以进行调试。只需在命令前面加上一个#ifdef DEBUG(如果你因为其他原因不需要它,甚至是 Windows.h),你就可以开始了。
  • @Brandin 这实际上是一个链接器选项,如果您正在编写 Windows 应用程序,您需要了解这些信息。碰巧您使用的确切开关对于不同的构建工具是不同的。对于 MinGW,您传递 -mwindows 而不是 -mconsole。对于 Microsoft 的 CL.exe,您指定 /SUBSYSTEM:WINDOWS 开关而不是 /SUBSYSTEM:CONSOLE。 kkuryllo 的解决方案不是“更好”的解决方案。如果您想要一个用于调试目的的控制台,您需要手动管理它,使用AllocConsole 调用它。但我不知道你为什么想要它,内置了很棒的调试功能。
猜你喜欢
  • 1970-01-01
  • 2013-10-09
  • 2019-10-10
  • 1970-01-01
  • 2016-04-28
  • 2021-12-31
  • 2020-06-26
  • 2013-08-07
  • 1970-01-01
相关资源
最近更新 更多