【问题标题】:Multiple consoles for a single application C++单个应用程序的多个控制台 C++
【发布时间】:2014-01-17 19:22:05
【问题描述】:

是否可以在 Windows 窗体中创建两个控制台窗口(一个是主窗口),而第二个是弹出窗口,如 Windows 窗体中的消息框?

我只希望辅助控制台窗口保存 ID(将被硬编码到应用程序中),因此用户不必一直返回主菜单来检查可用 ID

如果是这样,你会怎么做?

非常感谢

【问题讨论】:

  • 您需要自己实现额外的控制台。一个进程最多只有一个系统提供的控制台。
  • @DavidHeffernan 还是创建一个从属进程并中继消息?

标签: c++ windows console-application windows-console


【解决方案1】:

没有

一个进程只能与一个控制台关联。

AllocConsole

【讨论】:

    【解决方案2】:

    是的,你可以做到。

    解决方案其实很简单——我们的进程可以启动一个新的helper子进程,所以帮助进程将显示我们的进程发送的任何内容。我们可以使用管道轻松实现这样的解决方案:对于每个新的console(我将其称为 logger),我们将打开一个管道,并执行一个 Console-Helper 应用程序 - 这个应用程序的作用非常简单,它将打印通过管道发送的所有内容。查看这篇文章Multiple consoles for a single application了解详细信息(包含源代码)。

    在代码中,它实现了一个控制台类CConsoleLogger,然后你可以创建多个控制台窗口,如:

    CConsoleLogger another_console;
    another_console.Create("This is the first console");
    another_console.printf("WOW !!! COOLL !!! another console ???");
    

    你会得到类似的东西:

    【讨论】:

    • 您应该总结所涉及的基本步骤,以便这个答案是独立的。应避免在 SO 上使用仅链接的答案。
    【解决方案3】:

    查看http://msdn.microsoft.com/en-us/library/windows/desktop/ms682528(v=vs.85).aspx 以获取有关创建控制台窗口的说明。

    【讨论】:

      猜你喜欢
      • 2015-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多