Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/159.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 你能强迫控制台应用程序看起来像gui应用程序吗?_C++_User Interface_Console - Fatal编程技术网

C++ 你能强迫控制台应用程序看起来像gui应用程序吗?

C++ 你能强迫控制台应用程序看起来像gui应用程序吗?,c++,user-interface,console,C++,User Interface,Console,我一直在权衡制作gui应用程序的利弊,我决定控制台应用程序对我的计算器来说更强大,特别是因为它可以做不同的事情,比如箔片,二次方程,等等。所以我的问题是让控制台看起来像一个基于gui的应用程序?你的问题的答案取决于你所说的控制台到底是什么意思。如果你说的是Windows控制台Windows,那么答案可能是。一些Windows安装可以在控制台窗口中模拟VGA/EGA图形,使它们能够在DOS下玩旧游戏 您的任务是实现所需的每个GUI小部件,如可单击按钮、文本输入字段等,以简单的图形原语绘制线条和矩形

我一直在权衡制作gui应用程序的利弊,我决定控制台应用程序对我的计算器来说更强大,特别是因为它可以做不同的事情,比如箔片,二次方程,等等。所以我的问题是让控制台看起来像一个基于gui的应用程序?

你的问题的答案取决于你所说的控制台到底是什么意思。如果你说的是Windows控制台Windows,那么答案可能是。一些Windows安装可以在控制台窗口中模拟VGA/EGA图形,使它们能够在DOS下玩旧游戏

您的任务是实现所需的每个GUI小部件,如可单击按钮、文本输入字段等,以简单的图形原语绘制线条和矩形。然后,您必须编写代码,找出鼠标的位置,并将鼠标指针画在正确的位置。您还必须编写代码使光标闪烁,使箭头键移动光标,并使在文本输入框中选择字符并复制、剪切和粘贴它们成为可能

当你完成了,你会有一个程序,在一些人的电脑上工作,但在其他人的电脑上不工作。在某些Windows安装中,控制台Windows无法显示图形或全屏显示。你的应用程序根本无法在这些系统上运行,尽管你可以使用2D游戏库(如SDL或Allegro)编写全屏Windows应用程序,而不是编写控制台应用程序,这会让你回到上一段

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

此外,进行实际计算的代码应该完全分开 从代码中获取用户的输入并将答案显示在屏幕上,因此代码不应考虑您是要编写GUI还是控制台应用程序。它们甚至不应该与I/O例程位于同一个.cpp文件中


现在,一些程序员使用术语console来指Linux上的XTermWindows。它们根本不是一回事,不能绘制图形,控制台的名称不对。但有时你会看到菜单和里面的东西,用彩色文本绘制。通常,这些都是使用外部对话框shell命令绘制和管理的。

尝试使控制台应用程序看起来像gui应用程序,而不是制作gui应用程序有什么意义?我不知道如何在gui内部实现二次方程解算、箔解算等功能,让用户自己输入值,然后为它们求解,这样就容易多了。但是,当然控制台应用程序有点难看,所以我想尽量把它伪装成gui应用程序。另外,老实说,我甚至不能完全确定我是否能够创建gui应用程序,我不是最熟练的程序员。上次我听说你可以在gui应用程序中进行输入。如果有一个带有表单设计器的适当IDE,gui应用程序的开发是相当容易的。解方程的实际代码是一样的。啊,我明白了。我决定通过windows窗体使用gui,这意味着我现在必须使用c,我的箔片按钮遇到了问题。代码如下:双x1,x2,y1,y2,和,sum2,sum3,sum4;x1=系统::转换::ToDoubletextBox1->文本;y1=系统::转换::ToDoubletextBox2->Text;x2=系统::转换::ToDoubletextBox1->Text;y2=系统::转换::ToDoubletextBox2->Text;总和=x1*y1;sum2=x2*y1;sum3=x2*y1;sum4=x2*y2;textBox3->Text=System::Convert::ToStringsum、sum2、sum3、sum4;我不知道如何在一个文本框中显示4个和。我不做C,所以我帮不了什么忙。但从文档中可以看出,System::Convert::ToString一次只能转换1个数字。解决方案包括使用对ToString的单独调用来转换它们,然后将这4个字符串附加在一起,中间加空格。在C++中,我将使用ySNPrTffffialAlxSnpe、长度、%f%f%f%f、SUM1、SUM2、SUM3、SUM4来进行转换。