你能强制一个控制台应用程序看起来像一个gui应用程序吗?

时间:2015-03-09 04:37:51

标签: c++ user-interface console

我一直在权衡专业人士制作gui应用程序,并且我已经确定一个控制台应用程序对我的计算器更强大,特别是因为它确实如此不同的东西,如箔,二次方程等。所以我的问题是使控制台看起来像一个基于gui的应用程序?

1 个答案:

答案 0 :(得分:0)

您的问题的答案取决于您对“控制台”的确切含义。如果你在谈论Windows控制台窗口,那么答案就是“可能”。某些Windows安装可以在控制台窗口中模拟VGA / EGA图形,使它们能够为DOS播放旧游戏。

您的任务是实现您需要的每个GUI小部件,例如可点击按钮,文本输入字段等,用于绘制线条和矩形的简单图形基元。然后你必须编写代码来确定鼠标的位置并在正确的位置绘制鼠标指针。您还必须编写代码以使光标闪烁,使箭头键移动光标,并且可以在文本输入框中选择字符并复制,剪切和粘贴它们。

完成后,你会有一个程序可以在某些人的计算机上运行,​​但不能在其他人的计算机上运行。在某些Windows安装中,控制台窗口无法执行图形操作或全屏显示。虽然您可以使用2D游戏库(如SDL或Allegro)编写全屏Windows应用程序而不是编写控制台应用程序,但您的应用程序根本无法在这些系统上运行,这将使您回到上一段。

正如您现在可能已经猜到的那样,滚动您自己的GUI将比编写Windows GUI程序要多得多,其中已经为您实现了按钮,文本字段等,光标已经闪烁,鼠标已经点击等。

此外,执行实际计算的代码应完全分开 从获取用户输入的代码中将答案放在屏幕上,这样代码就不会考虑是否要编写GUI或控制台应用程序。它们甚至不应与I / O例程位于同一.cpp文件中。

现在,一些程序员使用术语“控制台”来指代Linux上的xterm窗口。这些根本不是一回事,也不能绘制图形(而“控制台”是他们引导的错误名称)。但有时你会看到菜单和其中的东西,用彩色文字“画”。通常,这些是使用外部dialog shell命令绘制和管理的。