gpt4 book ai didi

c++ - 来自一个 Win32 控制台应用程序的多个控制台窗口

转载 作者:太空狗 更新时间:2023-10-29 23:46:20 24 4
gpt4 key购买 nike

我在 VS2008 中编写了一个基于空 Win32 控制台应用程序的程序,该应用程序在 Win7 64 位上运行。该程序完全是基于菜单的生成,来自 main.cpp,它只调用根据用户需要(例如收银员、库存、报告等)导致其他界面的外部功能。我想做的是为每个界面提供一个新的控制台窗口。

理想情况下,它会在调用任何其他界面等时关闭主菜单,因为用户会继续使用其功能,包括在必要时重新打开主菜单。

这样做的基础是下周我将开始一个新学期,使用 C++ 深入研究 OOP,我想复习我的课文并完成与主题相关的顶点项目,以确保我拥有所有基础知识拍下来尽管我很想以最聪明、最简单的方式来做这件事,但最好还是坚持书中提供的有限知识,这些知识只暗示了 STL 而没有提到像 这样的其他库提升

当然,我已经在 SO 和其他地方搜索过寻找解决方案。我找到了答案,其中大部分都超出了我的严格要求,其中一些涉及从头开始构建控制台窗口。虽然从头开始似乎是最有前途的,但它似乎正在处理那些不使用像 VS 这样强大的 IDE 的人,我不知道它是否会导致比它值得的更多的冲突,或者它是否可以用于多重性。然而,大多数人给我的印象是这是不可能的。一个异常(exception)是将控制台链接到进程。这就是我希望在我的 future !

促使我这样做的原因是需要清晰地审视每一轮事件。起初,我一直在尝试使用 void clearScreen(int lines); 之类的基本功能来清除屏幕,但这总是会从底部清除。所以,如果我在下一个界面之前清除屏幕,它仍然在底部。如果我清除它然后接受输入,提示仍然在底部。

以防到现在还没有搞清楚。我的问题是:
是否有可能在合理范围内生成多个与进程相关的控制台窗口,或者是否有一种我不知道的简单方法来操纵主控制台窗口的滚动?
尽管我“需要”留在传统学习的婴儿步过程的范围内,但我很乐意听到除了切换应用程序类型之外的任何意见。

这更像是一个强制症问题,而不是任务的要求,所以如果付出的努力不值得,那也没关系。

最佳答案

没有可移植的方式在控制台窗口周围移动光标 - 在 Unix/Linux 中,您可以为此发送终端代码,在 Windows 中我不知道。

什么跨平台工作,但非常慢而且不太好,将是:

  • 逐个字符地阅读您输入的内容
  • 记住下一个字符应该出现在屏幕上的什么地方
  • 每次按键后重新绘制整个屏幕

如果你想做得更好,你必须转向特定于平台的解决方案,或者找到一个可以为你做的库(比如 Unix 世界中的 ncurses),但我不知道这些是否适合您的要求。

关于c++ - 来自一个 Win32 控制台应用程序的多个控制台窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12051496/

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