2012下的人机交互界面设计.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CodeBlock下的人机交互界面设计 人机交互界面指的是计算机系统与用户之间的接口。通过该接口,一方面,计算机系统向用户输出系统的运行状态、运行控制和运行结果等方面信息;另一方面,用户根据输出信息向系统输入相应的指令和数据等信息。 3.4.1 控制台窗口和屏幕缓冲区 控制台窗口是个二维平面空间,其坐标系统的原点(0, 0)设在窗口左上角,即窗口第一行第一列字符单元的位置。横轴(X轴)的正向沿原点向右,与窗口的第一行重合,每刻度为一个字符宽度;纵轴(Y轴)的正向沿原点向下,与窗口的第一列重合,每刻度为一个字符高度。窗口中每个字符单元对应一个二维坐标。比如,第5行第32列字符单元的坐标为(31, 4)。如图3.8所示。 图3.8 控制台窗口和屏幕缓冲区关系示意图 屏幕缓冲区是个二维数组,逻辑上可看作一个二维平面空间。数组第一个元素的下标[0][0]对应此平面空间坐标系统的原点(0, 0),数组第1维的下标对应坐标系统的纵坐标(Y坐标),第2维下标对应坐标系统的横坐标(X坐标)。屏幕缓冲区存放着M行N列字符单元的信息,M和N的大小由系统设置,并可以进行修改。每个字符单元信息用一个CHAR_INFO结构类型的数据来表示,结构成员Char存放字符的码值(Unicode码或ASCII码,取决于系统所采用的字符集),结构成员Attributes存放字符的属性(字符显示所用的前景色和背景色)。操作系统以一定的频率从屏幕缓冲区读取字符单元信息,并显示在控制台窗口中。应用程序的输出信息实际上输出到了屏幕缓冲区,由此改变了控制台窗口所显示的内容。初始状态下,屏幕缓冲区坐标系统与控制台窗口坐标系统重合,窗口中第m行第n列字符的码值和颜色值存放在屏幕缓冲区二维数组中下标为[m-1][n-1]的元素中。利用控制台函数可以改变这两个坐标系统的对应关系,实现特殊的显示效果。图3.8表示了控制台窗口和屏幕缓冲区的相互关系。 一个控制台可拥有多个屏幕缓冲区,但只有处于激活状态的屏幕缓冲区内容显示在控制台窗口中。操作系统在为进程创建控制台的同时会创建一个屏幕缓冲区。进程可调用函数CreateConsoleScreenBuffer为其控制台创建另外的屏幕缓冲区。调用函数SetConsoleActiveScreenBuffer可以将某个已有的屏幕缓冲区置为激活状态,使其内容显示在屏幕窗口中。不管是否处于激活状态,屏幕缓冲区都可以通过句柄来进行读写操作,只不过激活状态下屏幕缓冲区的内容可以看到,非激活状态下看不到而已。 屏幕缓冲区相关的多个属性可以独立进行设置。激活的屏幕缓冲区属性值的变化能在控制台窗口中产生奇妙的外观效果。屏幕缓冲区相关的属性包括: 屏幕缓冲区大小,以字符行和列为单位; 文本属性(文本信息显示的前景色和背景色); 窗口大小和定位(控制台屏幕缓冲区在控制台窗口中显示时所处的矩形区域); 光标位置、外观和是否可见; 输出模式(控制字符的输出处理和行末换行处理)。 屏幕缓冲区在创建时,它所包含的字符内容初始化为空格,光标设为可见并定位在缓冲区原点(0, 0),而窗口的原点(左上角)与缓冲区原点置为重合。控制台屏幕缓冲区的大小、窗口的大小、文本属性和光标的外观取决于用户或系统的缺省设置。 为获取控制台屏幕缓冲区各种相关属性的当前值,可分别调用函数: GetConsoleScreenBufferInfo; GetConsoleCursorInfo; GetConsoleMode。 屏幕缓冲区光标信息用CONSOLE_CURSOR_INFO结构类型的数据表示,成员bVisible表示光标是否可见,成员dwSize表示光标外观大小,取值范围为1~100。光标可见时,dwSize的取值从100变为1,光标外观大小从充满整个字符单元变为出现在单元底部的一条水平线。调用函数GetConsoleCursorInfo和SetConsoleCursorInfo分别可以获得和设置光标属性值。 由高级控制台I/O函数(如getchar,putchar,printf,scanf等)输出的字符将输出在光标当前位置,同时光标移动到下一个字符输出位置。 调用函数: GetConsoleScreenBufferInfo和SetConsoleCursorPosition, 分别可以获得和设置光标在屏幕缓冲区坐标系统中的当前位置,由此可以控制高级I/O函数输出或回显字符的位置。 字符属性分为两类:颜色属性和DBCS(Double-Byte Character Set,双字节字符集)属性。表3.14中的符号常量在wincon.h头文件中进行定义。 表3.14 字符属性符号常量表 属性 含义 FOREGROUND_BLUE 文本颜色包含蓝色 FOREGROUND_GREEN 文本

文档评论(0)

sMDHVSLYyy + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档