Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.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
User interface 控制台应用程序GUI_User Interface_Console - Fatal编程技术网

User interface 控制台应用程序GUI

User interface 控制台应用程序GUI,user-interface,console,User Interface,Console,这样的GUI是如何制作的,但在控制台应用程序中 有很多例子,例如alsamixer: 大多数控制台平台都具有goto(x,y)等功能,可以将光标定位在屏幕上的某个位置 这可用于使用您想要的任何ascii字符/颜色“绘制”屏幕。该库可用于创建此类用户界面。这是一个到NCurses的例子-最著名的Curses实现。是NCurses的一个有趣的替代方案,您可能也会感兴趣。在Windows出现之前,DOS上有很多不同的“GUI”API可用,所有这些基本上都隐藏了如果您想直接编码,需要进行的底层VGA调用

这样的GUI是如何制作的,但在控制台应用程序中

有很多例子,例如alsamixer:

大多数控制台平台都具有goto(x,y)等功能,可以将光标定位在屏幕上的某个位置


这可用于使用您想要的任何ascii字符/颜色“绘制”屏幕。

该库可用于创建此类用户界面。这是一个到NCurses的例子-最著名的Curses实现。

是NCurses的一个有趣的替代方案,您可能也会感兴趣。

在Windows出现之前,DOS上有很多不同的“GUI”API可用,所有这些基本上都隐藏了如果您想直接编码,需要进行的底层VGA调用。我个人曾与TurboPascal和Foxpro合作过。甚至有一个VisualBasic for DOS,其中包含一个类似的API。除了输出文本,这些API通常还包括下拉菜单、绘制简单框和着色等功能。一些更复杂的系统甚至会有基于字符的“窗口”,你可以用光标在屏幕上拖动

VGA可以通过文本(非常类似于大型机终端,您可以在行/列中有效地输出一个字符)或图形模式访问,这与GDI非常相似(尽管您必须自己完成所有操作,速度很慢,并且除了早期的绘图和cad程序外,很少用于其他任何操作)。您的示例是文本模式


在Unix上,这些注意事项更为流行,标准是使用,这是一种类似的文本模式API,它隐藏了底层的终端特征。

库(如Curses)的执行方式与窗口管理器运行图形环境的方式大致相同。窗口、按钮、复选框等控件都由库定义

您不是将文本写入屏幕,而是将文本写入窗口或设置某个控件的文本。该库跟踪窗口、重叠、边界效果、阴影、拖动行为(如果支持鼠标)。它建立了一个包含字符、前景色和背景色的字符缓冲区

发布的goto(x,y)示例可以工作,但是如果实现对每个字符都这样做,那么性能将明显滞后。为了获得快速性,当您更改某些文本或其他属性时,库知道需要从字符缓冲区更新的矩形区域,并通过对视频驱动程序的优化调用将该区域的新字符数据写入一个块中的屏幕

与只将每个可打印字符回显到屏幕上的基本控制台应用程序不同,这些高级应用程序中的键盘输入会被截取,并且这些字符会更明确地写入(或不写入,如果是应用程序的热键)右侧窗口或其他任何位置


我希望.Net有一个完整的内置控制台窗口库。。。[叹气]我觉得那些老式的控制台风格的应用程序看起来很不错。

我同意。他们看起来棒极了