控制台窗口界面控制设计
控制台设计知识点
控制台设计知识点控制台设计是指为了使用户能够通过控制台与计算机系统进行交互而进行的界面设计。
一个良好的控制台设计能够提供清晰直观的界面,方便用户操作和使用系统。
下面将介绍一些控制台设计的知识点。
一、界面设计原则1. 清晰简洁:界面元素要简洁明了,避免冗余信息和过多装饰,使用户能快速理解和使用。
2. 一致性:界面在整体风格、布局、标准化命名等方面要保持一致,确保用户可以轻松地学会和记住不同功能的操作。
3. 反馈机制:提供明确的反馈信息,使用户知道他们的操作结果,避免用户疑惑和迷失。
4. 易学性:设计应尽量减少用户的学习成本,使用常见的符号、图标和行为模式,降低用户的认知负担。
5. 可访问性:考虑到不同用户的特殊需求,如色盲、低视力等,要提供可访问的功能和界面设计。
二、布局设计1. 分区布局:将控制台界面划分为不同的区域,分别用于显示不同的信息或功能,如命令输入区、命令输出区等。
2. 窗口管理:设计支持多窗口的布局,使用户可以同时查看和操作不同的功能或信息。
3. 菜单设计:合理设计菜单的位置和结构,提供清晰的功能分类,方便用户查找和选择。
4. 键盘快捷键:为常用操作提供快捷键,方便用户通过键盘快速执行命令或切换功能。
三、交互设计1. 输入控制:对用户的输入进行有效的控制和验证,确保输入的正确性和安全性。
2. 命令提示:及时给出命令的提示信息,帮助用户补全命令、参数和选项,减少用户的输入错误。
3. 历史记录:保留用户的历史操作记录,方便用户查找和重复执行之前的命令。
4. 自动完成:针对用户的输入,提供自动完成的功能,减少用户的输入量和错误率。
四、视觉设计1. 配色方案:选择合适的配色方案,使界面看起来舒适、协调和易于辨认。
2. 字体和字号:选择合适的字体和字号,确保文字在控制台上的清晰可读性。
3. 图标设计:合理使用图标、符号和图形,增强界面的可视化和易识别性。
4. 动效设计:运用适量的过渡和动效,提高用户的体验感和操作的连贯性。
C语言实现可视化人机界面的有效方法
C语言实现可视化人机界面的有效方法C语言是一种通用的编程语言,被广泛应用于嵌入式系统、操作系统和应用程序的开发中。
尽管C语言本身并不直接支持图形用户界面(GUI)的开发,但通过结合一些第三方库和技术,我们可以实现C语言的可视化人机界面。
在C语言中实现可视化人机界面的有效方法包括以下几种:1.使用图形库:使用图形库可以使界面更加友好,并允许用户通过鼠标和键盘进行交互。
常用的图形库包括SDL、GTK+和Qt等。
这些图形库提供了丰富的绘图、事件处理和界面元素库,方便开发者创建具有各种功能和样式的界面。
2.使用控制台窗口:控制台窗口是C语言程序的默认界面,可以通过在控制台上输出文本、表格和图形来实现可视化界面。
控制台窗口的优势是简单易用,无需额外的库和依赖,适用于简单的界面需求。
3. 使用基于Web的界面:在C语言中,可以通过内嵌Web服务器的方式实现基于Web的可视化人机界面。
通过这种方式,可以使用HTML、CSS和JavaScript等Web技术创建动态交互的界面。
例如,可以使用C语言编写一个带有内嵌Web服务器的程序,然后通过浏览器与用户进行交互。
4.使用ASCII字符界面:ASCII字符界面是使用ASCII字符和控制字符进行界面渲染的一种简单但有效的方式。
通过C语言的输出函数,可以直接在控制台上绘制字符界面,包括文本、边框、按钮等。
虽然ASCII界面的交互性和表现力有限,但它适用于一些简单的控制台应用程序。
5. 使用跨平台的界面库:C语言的一个优势是跨平台性,开发者可以使用一些跨平台的界面库来实现可视化界面。
这样一来,可以在不同的操作系统上运行相同的C语言程序,并保持一致的界面体验。
跨平台的界面库包括FLTK、wxWidgets等。
在实现可视化人机界面时,除了选择适合的技术和库之外,还有一些其他的注意事项:1.设计良好的用户界面:用户界面应该易于使用、直观和符合用户的习惯。
在设计界面时,需要考虑用户的需求和使用习惯,合理布局界面元素,提供明确的操作指引和反馈。
如何设计有效的HMI界面
如何设计有效的HMI界面在设计有效的控制台操作HMI(人机界面)时,对ASM准则最常见的误解和错误应用,就是过度强调颜色:简单地将某种新的颜色,用于控制台某个位置处的所有现存显示画面。
一般称之为HMI类似替换迁移工程(like-for-like HMI migration project)。
有些人可能希望在这种仅仅是颜色类似替换的工程中,能够将图1所示的画面转换成图2所示的画面。
典型情况下,如果分布式控制系统(DCS)的HMI,不是经过精心设计的、基于控制台操作员操作深度的层级画面显示,那么它就是扁平化的DCS显示系统。
在该系统中,大部分显示画面,会被精确地设计为P&ID(管道和仪表图)细节显示。
面对这样的DCS显示系统。
控制台操作人员一般会以图3所示的方式来使用DCS屏幕,每个操作人员会根据自己的喜好,来选择第3级设备显示画面以及报警汇总画面。
最好的情况是,如果开发人员在颜色选择上正确的应用了ASM准则,并且遵循了良好的画面显示布局原则,那么迁移的DCS显示系统也许具有满足ASM要求的单个第3级显示画面,但是DCS的HMI并不满足ASM要求。
图1 在进行HMI类似颜色替换工程之前的现有显示画面。
的要求是什么??ASM的要求是什么在HMI设计中使用ASM导则,并不仅仅是将彩色转换成灰度的设计,也不是仅在报警中使用颜色。
实际上,ASM准则提倡有效的利用颜色,包括恰当的规定某些显示背景,这些背景颜色在色调上,要比HMI库中那些供应商提供的、声称满足ASM准则的背景颜色要亮一些。
但是,要设计出满足ASM要求的HMI,还应遵循其它方面的要求,尤其是在显示类型、显示内容、浏览和交互等方面。
这就要求注意其它的实施细节:图2 迁移后的显示画面,使用了某些基本的布置原则。
■ 基于主要的操作步骤,设计显示层次,以符合操作员的思维模式;■ 设计与显示层次一致的第2级控制和监视画面,利用这些第2级画面,可以完成日常操作;■ 与主题专家一起,依据需求分析,识别第1、2、3、4级显示内容,使得HMI能够支持操作员工况认知、日常监视和控制操作、故障诊断活动以及异常工况管理。
2.1.1 控制台窗口[共2页]
10第2章初识PowerShell
Windows PowerShell ISE—64位系统上的64位图形化控制台和32位系统上的32位图形化控制台。
Windows PowerShell(x86)—64位系统上的32位图形化控制台。
图2.1 你可以选择四种PowerShell启动方式的其中一种
换句话说,32位操作系统仅有32位的PowerShell应用程序,而64位操作系统可以有32位和64位两个版本的PowerShell应用程序,其中32位应用程序在图标名中会包含“x86”字样。
需要注意的是,有些扩展程序只支持32位环境,不支持64位。
微软现在已经把全部精力放到64位系统中,而32位仅用于向后兼容。
提示:在64位系统中,人们经常会错误地打开32位应用程序,此时应该注意窗体的标题,如果显示“x86”,证明你在运行32位程序。
另外,64位扩展程序不能运
行在32位应用程序中,所以建议用户把64位应用程序以快捷方式的形式固定在
【开始】菜单中。
2.1.1 控制台窗口
图2.2展示了PowerShell控制台窗口界面,这是大多数人第一次见到的PowerShell 界面。
接下来,从使用简单的PowerShell控制台命令和参数开始本小节。
PowerShell不支持双字节字符集,也就是说,大部分非英语语言不能很好地展示出来。
控制台窗口界面(谷风软件)
怎样设置控制台窗口界面计算机专业----vc技术篇2010-05-19 23:03:58 阅读80 评论0 字号:大中小订阅本片日志来自:/Article/Programming/CC/200907/30628.html一、概述所谓控制台应用程序,就是指那些需要与传统DOS操作系统保持某种程序的兼容,同时又不需要为用户提供完善界面的程序。
简单地讲,就是指在Windows环境下运行的DOS程序。
一旦C++控制台应用程序在Windows 9x/NT/2000操作系统中运行后,就会弹出一个窗口。
例如下列过程:单击Visual C++标准工具栏上的“New Text File”按钮,打开一个新的文档窗口。
选择File | Save菜单或按快捷键Ctrl+S或单击标准工具栏的Save按钮,弹出“保存为”文件对话框。
将文件名为“Hello.cpp” (注意扩展名.cpp不能省略)。
在文档窗口中输入下列代码:#includevoid main(){cout<<"Hello, Console!"<}单击小型编译工具栏中的“Build”按钮或按F7键,系统出现一个对话框,询问是否将此项目的工作文件夹设定源文件所在的文件夹,单击[是]按钮,系统开始编译。
单击小型编译工具栏中的“Execute Program”按钮或按Ctrl+F5键,运行刚才的程序。
程序运行后,弹出下图的窗口。
这就是控制台窗口,与传统的DOS屏幕窗口相比最主要的区别有:(1) 默认的控制台窗口有系统菜单和标题,它是一个内存缓冲区窗口,缓冲区大小取决于Windows操作系统的分配;而DOS屏幕是一种物理窗口,不具有Windows窗口特性,其大小取决于ROM BIOS分配的内存空间。
(2) 控制台窗口的文本操作是调用低层的Win32 APIs,而DOS屏幕的文本操作是通过调用BIOS的16(10h)中断而实现的。
(3) 默认的控制台窗口可以接收键盘和鼠标的输入信息,设备驱动由Windows管理,而DOS屏幕窗口接收鼠标时需要调用33h中断,且鼠标设备驱动程序由自己安装。
Java图形用户界面设计
13
(3) 事件监听器(Listener) 事件处理机制中的核心部分,主要的功能大致可以分为 两部分:第一,监听组件,观察组件有没有发生某类事 件;第二,如果监听的组件发生了某类事件,则调用对 应的动作处理方法立刻处理这个事件。 在Java事件处理机制中,监听器处于主体地位。与事件 分类对应,监听器也相应的分成若干种类型,例如,鼠 标事件对应鼠标监听器,键盘事件对应键盘监听器,窗 口事件对应窗口监听器等。
25
5.3.2 AWT组件库常用组件举例 【问题1】 在窗口f中,有一个文本框tf,三个按钮btn_1、 btn_2、btn_3。当使用鼠标点击btn_1时,文本框显示 btn_1按钮被点击,当使用鼠标点击btn_2按钮时,文本框 显示btn_2按钮被点击,当使用鼠标点击btn_3按钮或者窗 口f的关闭按钮时,窗口关闭,程序退出。
(4) Choice Choice表示下拉选择框组件,选择框中的每一个选项称 为一个Item,Item的类型一般为String字符串。 (5) Label Label表示标签组件,主要作用在于创建提示性的文本。
23
(6) MenuBar、Menu和MenuItem MenuBar表示菜单条组件,该组件由Menu菜单构成,而 Menu菜单又可由Menu菜单和MenuItem菜单项构成。 (7) TextField TextField表示文本框组件,与文本域组件不同的是, 文本框中只能有一行文本。 (8) TextArea TextArea表示文本域组件,可以容纳多行文本。
30
(3) JRadioButton和ButtonGroup 在Swing中与Checkbox对应的是JCheckBox,实际使用时, 如果需要创建单选框组的话,经常使用的是 JRadioButton而非JCheckBox。如果将多个JRadioButton 组件放在一个ButtonGroup中时,这些JRadioButton组件 将不再具有复选功能,而是只具有单选功能,也即变成 单选框。 (4) JComboBox JcomboBox对应于AWT中的Choice,表示下拉选择框组件, 选择框中的每一个选项称为一个Item,Item的类型一般 为String字符串,也可以是指定的泛型类型。
第02章 Fluent用户界面
第二章Fluent用户界面FLUENT包括下拉菜单,面板和对话框还包括文本命令行的界面。
本章详细介绍了上述几个部分的使用方法及相应功能。
2.1图形用户界面(GUI)它由控制台窗口,控制面板,对话框以及图形窗口组成。
下图就是典型的fluent界面。
上述四个部分将在下面详细介绍。
在UNIX系统中,GUI (包括颜色和字体)可以自定义以适合操作系统的环境。
Figure 1:屏幕显示的GUI各部分2.1.2控制台(Console)FLUENT控制台是控制程序执行的主窗口。
用户和控制台之间有两种交流方式:文本界面(TUI),图形界面(GUI)。
控制包括终端仿真程序和菜单按钮的图形界面。
Figure 2: 控制台2.1.3终端仿真程序终端仿真程序和MS-DOS命令提示符类似,它使你能够和TUI菜单交流。
所有的文本都输出到终端仿真程序,所有的输入都从最底行开始。
快捷键Control-C可以暂停正在计算的程序。
它也支持控制台和其它X Window或Windows NT应用程序之间文本的复制和粘贴。
下面是UNIX系统中复制和粘贴的方法:1.鼠标左键选中要复制的东东2.到新窗口点击中键便可粘贴下面是在Windows NT系统中复制文本到剪贴板的方法:1.选中文本2.Ctrl+Insert2.1.4菜单按钮菜单按钮用下拉菜单组织图形界面的层次,下图就是下拉菜单的外观Figure 3:Help下拉菜单FLUENT下拉菜单使用方法和Windows的一样。
快捷方式也一样——Alt,然后下划线字母选中,ESC键退出。
有些下拉菜单有快捷键,在相应的菜单后面会提示快捷键是什么,自己去找就可以了。
2.1.5对话框对话框用于完成简单的输入输出任务,比如说警告、错误和询问。
对话框是临时窗口,出现时要注意,你对它作出选择之后关闭就可以做其它工作了。
下面是几种对话框信息提示框信息提示框告诉我们需要知道的信息,点击OK就关闭了警告对话框警告对话框用于警告某些潜在问题,并询问是否继续当前操作,错误对话框工作对话框工作对话框显示正在进行的任务,这是一个特殊的对话框,你唯一的操作就是干掉它,否则它不需要你进行任何操作,只告诉你——等待吧!!程序结束它也自动关闭了。
控制台使用说明书
控制台使用说明书控制台使用说明书一、控制台简介控制台是一种命令行界面,用于管理和操作计算机系统。
在Windows 系统中,控制台可以通过打开“运行”窗口,输入“cmd”命令来打开。
在Linux系统中,可以通过终端窗口或者快捷键Ctrl+Alt+T来打开。
二、控制台基本操作1. 打开控制台:如上所述,在Windows系统中可以通过“运行”窗口或者搜索栏输入“cmd”来打开,Linux系统中可以通过终端窗口或者快捷键Ctrl+Alt+T来打开。
2. 命令的格式:命令由命令名称和参数组成,命令名称和参数之间用空格隔开。
3. 命令的帮助:在控制台中输入“help”或者“/?”,可以查看命令的帮助信息。
4. 清除屏幕:在控制台中输入“cls”命令可以清除屏幕上的所有内容。
三、常用命令1. 目录相关命令:(1)dir:列出当前目录下的所有文件和子目录。
(2)cd:进入指定目录,例如cd C:\Program Files。
(3)md/mkdir:创建新目录,例如mkdir newfolder。
(4)rd/rmdir:删除指定目录及其内容,例如rmdir oldfolder。
2. 文件相关命令:(1)type:查看文本文件的内容,例如type readme.txt。
(2)copy:复制文件,例如copy file1.txt file2.txt。
(3)del:删除指定文件,例如del file1.txt。
(4)ren/rename:重命名文件,例如rename file1.txt newfile.txt。
3. 系统相关命令:(1)tasklist:列出当前正在运行的所有进程。
(2)taskkill:结束指定进程,例如taskkill /im notepad.exe /f。
四、高级操作1. 重定向输出:在命令后添加“>”符号可以将输出结果保存到文件中,例如dir > filelist.txt。
如果要将多个命令的输出结果保存到同一个文件中,可以使用“>>”符号,例如dir >> filelist.txt。
第21章 MiniGUI图形界面设计
21.1.3 MiniGUI运行模式
21.2 MiniGUI的安装和使用
•
Байду номын сангаас
现有的资料主要介绍了MiniGUI在RedHat9.0下的安装 和配置,而对其他Linux发行版下应用的资料还很少。 本章将介绍MiniGUI在Ubuntu下的安装和配置方法, 以及如何使用eclipse进行MiniGUI的嵌入式开发。
• •
(3)如果没有出现错误,就可以继续执行make和 make install命令编译并安装libminigui库文件: $make
(4)默认情况下,MiniGUi的函数库将安装在 /usr/local/lib目录中。您应该确保该目录已经列在 /etc/ld.so.conf文件中。修改/etc/ld.so.conf文件,如果 该文件不存在则新建一个。将 /usr/local/lib目录添加到 该文件最后一行。
• • • •
21.2.5 交叉编译MiniGUI库
• • • 与编译PC上的libminigui的过程是大致相同的,只需在 make menu出现的配置界面中略做配置即可。 “Development environment options ” 按回车键后进入子菜单,需要配置的项如图21-2所示:
1. system段
•
system段中指定了MiniGUI要使用的图形引擎、输入 引擎以及鼠标设备和协议类型,分别由gal_engine、 ial_engine、mdev和mtype键指定。因为MiniGUI库 中可以同时包含多个图形引擎和多个输入引擎,可以分 别通过gal_engine、ial_engine指定要使用哪个图形引 擎。
21.2.6 交叉编译例程
•
• • • • •
fluent操作界面
Fluent用户界面FLUENT包括下拉菜单,面板和对话框还包括文本命令行的界面。
本章详细介绍了上述几个部分的使用方法及相应功能。
图形用户界面(GUI) 它由控制台窗口,控制面板,对话框以及图形窗口组成。
下图就是典型的fluent界面。
包括颜色和字体)可以自定义以适上述四个部分将在下面详细介绍。
在UNIX系统中,GUI (包括颜色和字体合操作系统的环境。
Figure 1:屏幕显示的屏幕显示的GUI各部分控制台(Console)FLUENT控制台是控制程序执行的主窗口。
用户和控制台之间有两种交流方式:文本界面(TUI),图形界面(GUI)。
控制包括终端仿真程序和菜单按钮的图形界面。
Figure 1: 控制台控制台终端仿真程序终端仿真程序终端仿真程序和MS-DOS命令提示符类似,它使你能够和TUI菜单交流。
所有的文本都输出到终端仿真程序,所有的输入都从最底行开始。
快捷键Control-C可以暂停正在计算的程序。
它也支持控制台和其它X Window或Windows NT应用程序之间文本的复制和粘贴。
系统中复制和粘贴的方法:下面是UNIX系统中复制和粘贴的方法:1.鼠标左键选中要复制的东东.鼠标左键选中要复制的东东2.到新窗口点击中键便可粘贴.到新窗口点击中键便可粘贴系统中复制文本到剪贴板的方法:下面是在Windows NT系统中复制文本到剪贴板的方法:1.选中文本.选中文本2.Ctrl+Insert 菜单按钮菜单按钮菜单按钮用下拉菜单组织图形界面的层次,下图就是下拉菜单的外观菜单按钮用下拉菜单组织图形界面的层次,下图就是下拉菜单的外观Figure 1:Help下拉菜单下拉菜单FLUENT下拉菜单使用方法和Windows的一样。
快捷方式也一样——Alt,然后下划线字母选中,ESC 键退出。
有些下拉菜单有快捷键,在相应的菜单后面会提示快捷键是什么,自己去找就可以了。
自己去找就可以了。
对话框对话框对话框用于完成简单的输入输出任务,比如说警告、错误和询问。
组态软件人机界面设计步骤
组态软件人机界面设计步骤1.界面风格的设计控制台人机界面选用非标准Windows风格,以实现用户个性化的要求。
但考虑到大多数用户对于标准Windows系统较熟悉,在界面设计中尽量兼容标准Windows界面的特征。
因为位图按钮可在操作中实现高亮度、突起、凹陷等效果,使界面表现形式更灵活,同时可以方便用户对控件的识别。
但是,界面里使用的对话框、编辑框、组合框等都选用Windows标准控件,对话框中的按钮也使用标准按钮。
控件的大小和间距尽量符合Windows界面推荐值的要求。
界面默认窗体的颜色是亮灰色。
因为灰色调在不同的光照条件下容易被识别,且避免了色盲用户在使用窗体时带来的不便。
为了区分输入和输出,供用户输入的区域使用白色作为底色,能使用户容易看到这是窗体的活动区域;显示区域设为灰色(或窗体颜色),目的是告诉用户那是不可编辑区域。
窗体中所有的控件依据Windows界面设计标准采用左对齐的排列方式。
对于不同位置上多组控件,各组也是左对齐2.系统界面布局分析人机界面的布局设计根据人体工程学的要求应该实现简洁、平衡和风格一致。
典型的工控界面分为3部分:标题菜单部分、图形显示区以及按钮部分。
根据一致性原则,保证屏幕上所有对象,如窗口、按钮、莱单等风格的一致。
各级按钮的大小、凹凸效果和标注字体、字号都保持一致,按钮的颜色和界面底色保持一致。
3.打开界面的结构体系选择界面的概念取决于多个界面。
可将界面设计为循环,如果运行大量界面,必须设计一个合理的结构体系来打开界面。
选择简单而永久的结构以便操作员能够快速了解如何打开界面。
用户一次处理的信息量是有限的,所以大量信息堆积在屏幕上会影响界面的友好性。
为了在提供足够的信息量的同时保证界面的简明,在设计上采用了控件分级和分层的布置方式。
分级是指把控件按功能划分成多个组,每一组按照其逻辑关系细化成多个级别。
用一级按钮控制二级按钮的弹出和隐藏保证了界面的简洁。
分层是把不同级别的按钮纵向展开在不同的区域,区域之间有明显的分界线。
使用VisualStudio2019创建C#项目(窗体应用程序、控制台应用程序、Web应用程序)
使⽤VisualStudio2019创建C#项⽬(窗体应⽤程序、控制台应⽤程序、Web应⽤程序)⼀、VS的开发环境⾸先你得安装了vs2019,然后确认下下⾯三个组件是否存在,如果没有要下载⼀下。
vs2019的安装可参考。
⼆、创建C#窗体应⽤程序打开vs可以直接在搜索框输⼊关键字进⾏搜索,选择 Windows 窗体应⽤(.NET Framework)。
如图。
也可以限定项⽬类型,所⽤的语⾔进⾏查找。
接下去狂点确定即可。
当然可以选择改个项⽬存放存放的⽬录和项⽬名称。
创建好后,就进⼊到了这么⼀个界⾯。
在窗体右边(也可能是在左边。
每个⼈的设置可能不同)有⼀个⼯具箱的选项,打开有⼀些窗体应⽤所需的控件。
接下来我们写个⼩程序测试⼀下项⽬是否能正常运⾏。
实现的功能就是当我们点击按钮的时候,能显⽰出⽬前的点击次数。
⾸先从属性那边拖动两个空间到窗⼝上,分别是Button和Label。
并把它们的名称和内容分别修改为(btn,点击)和(lab,0)接着绑定按钮的点击事件,如果不知道事件是什么,没关系,先跟着做就⾏。
可以从属性窗⼝那,点击右上⾓的闪电图标,然后点击Clike的按钮,如图。
或者直接双击按钮。
之后就会跳转到这么⼀个代码界⾯。
然后编写我们所需要的代码即可。
如下。
完成效果。
(虽然画⾯有点丑)三、创建控制台应⽤程序创建步骤跟上⾯类似,选择控制台应⽤程序创建即可写个测试程序。
从控制台输⼊⼀句话并打印出来了。
四、创建Web应⽤程序选择创建⼀个Web应⽤程序,如图。
选择空项⽬添加⼀个Web窗体创建好后是这么个界⾯。
可以直接编写H5代码。
或者点击左下⾓设计。
进⼊这么⼀个界⾯。
跟windows窗体应⽤开发很相似。
在右边也有个⼯具箱。
有许多控件可以使⽤。
添加⼀个Label和Button 空间到窗体,并修改下id和text。
要实现的功能是当点击按钮后将Label中的内容转成⼤写。
跟窗体应⽤程序⼀样,双击Button就可以绑定事件然后进⾏编辑。
控制台窗口界面的编程控制(五)
控制台窗口界面的编程控制(五)八、光标操作控制台窗口中的光标反映了文本插入的当前位置,通过SetConsoleCursorPosition函数可以改变这个“当前”位置,这样就能控制字符(串)输出。
事实上,光标本身的大小和显示或隐藏也可以通过相应的API 函数进行设定。
例如:BOOL SetConsoleCursorInfo( // 设置光标信息HANDLE hConsoleOutput, // 句柄CONST CONSOLE_CURSOR_INFO *lpConsoleCursorInfo // 光标信息);BOOL GetConsoleCursorInfo( // 获取光标信息HANDLE hConsoleOutput, // 句柄PCONSOLE_CURSOR_INFO lpConsoleCursorInfo // 返回光标信息);这两个函数都与CONSOLE_CURSOR_INFO结构体类型有关,其定义如下:typedef struct _CONSOLE_CURSOR_INFO {DWORD dwSize; // 光标百分比大小BOOL bVisible; // 是否可见} CONSOLE_CURSOR_INFO, *PCONSOLE_CURSOR_INFO;需要说明的是,dwSize值反映了光标的大小,它的值范围为1-100;当为1时,光标最小,仅是一条最靠下的水平细线,当为100,光标最大,为一个字符大小的方块。
九、读取键盘信息键盘事件通常有字符事件和按键事件,这些事件所附带的信息构成了键盘信息。
它是通过API函数ReadConsoleInput来获取的,其原型如下:BOOL ReadConsoleInput(HANDLE hConsoleInput, // 输入设备句柄PINPUT_RECORD lpBuffer, // 返回数据记录DWORD nLength, // 要读取的记录数LPDWORD lpNumberOfEventsRead // 返回已读取的记录数);其中,INPUT_RECORD定义如下:typedef struct _INPUT_RECORD {WORD EventType; // 事件类型union {KEY_EVENT_RECORD KeyEvent;MOUSE_EVENT_RECORD MouseEvent;WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent;MENU_EVENT_RECORD MenuEvent;FOCUS_EVENT_RECORD FocusEvent;} Event;} INPUT_RECORD;与键盘事件相关的记录结构KEY_EVENT_RECORD定义如下:typedef struct _KEY_EVENT_RECORD {BOOL bKeyDown; // TRUE表示键按下,FALSE表示键释放WORD wRepeatCount; // 按键次数WORD wVirtualKeyCode; // 虚拟键代码WORD wVirtualScanCode; // 虚拟键扫描码union {WCHAR UnicodeChar; // 宽字符CHAR AsciiChar; // ASCII字符} uChar; // 字符DWORD dwControlKeyState; // 控制键状态} KEY_EVENT_RECORD;我们知道,键盘上每一个有意义的键都对应着一个唯一的扫描码,虽然扫描码可以作为键的标识,但它依赖于具体设备的。
控制台窗口界面控制设计
控制台窗口界面控制设计(一)作者:丁有和转贴自:yesky 点击数:139 文章录入:本站编辑摘要:文本界面的控制台应用程序开发是深入学习C++、掌握交互系统的实现方法的最简单的一种手段。
然而,Visual C++的C++专用库却没有TC所支持的文本(字符)屏幕控制函数,为此本系列文章从一般控制步骤、控制台窗口操作、文本(字符)控制、滚动和移动、光标、键盘和鼠标等几个方面讨论控制台窗口界面的编程控制方法。
在众多C++开发工具中,由于Microsoft本身的独特优势,选用Visual C++已越来越被众多学习者所接受。
显然,现今如果还再把TC作为开发环境的话,不仅没有必要,而且也不利于向Windows应用程序开发的过渡。
然而,Visual C++的C++专用库却没有TC所支持的文本屏幕(控制台窗口)控制函数(相应的头文件是conio.h)。
这必然给C++学习者在文本界面设计和编程上带来诸多不便。
要知道,文本界面设计是一种深入学习C++、掌握交互系统的实现方法的最简单的一种手段,它不像C++的Windows图形界面应用程序,涉及知识过多。
为此,本系列文章来讨论在Visual C++ 6.0开发环境中,如何编写具有美观清晰的控制台窗口界面的C++应用程序。
一、概述所谓控制台应用程序,就是指那些需要与传统DOS操作系统保持某种程序的兼容,同时又不需要为用户提供完善界面的程序。
简单地讲,就是指在Windows环境下运行的DOS程序。
一旦C++控制台应用程序在Windows 9x/NT/2000操作系统中运行后,就会弹出一个窗口。
例如下列过程:单击Visual C++标准工具栏上的“New Text File”按钮,打开一个新的文档窗口。
选择File | Save菜单或按快捷键Ctrl+S或单击标准工具栏的Save按钮,弹出“保存为”文件对话框。
将文件名为“Hello.cpp” (注意扩展名.cpp不能省略)。
C_C++控制台界面编程
C/C++控制台界面编程
序 资料中一部分来自互联网,作者已无法考证,另一部分来自 MSDN,其余部分为本人(wyz5@) 自己编写并重新整理、修改、增加和补充一些内容,使之更充实、完善,所有程序均在 Visual Studio 2005 SP1 中调试通过(操作系统为 Windows XP SP3),原文很多代码均有语法错误,全部作了更正,部分示例 代码的功能也进行了增加,有些示例代码功能稍多,为使示例更有针对性,在保留其知识点的基础上对代 码进行了精简,最后提供了自己的几个简易的程序示例,以飨读者。 每一个学习 C、C++的人,最先接触到的就是在控制台窗口下进行编程学习,它是一个基于文本模式的 黑黑的窗口,它不涉及到复杂的人机交互编程,是深入学习 C、C++最直接、简单的手段。 早期的开发都使用 Turbo C(简称 TC)进行开发,在 TC 的库中提供了大量的用于控制台界面处理的函 数,时至今日,这些涉及到 C、C++标准之外的界面控制程序已经无法在在 VC 中编译通过了,有时候为了学 习和移植早期的代码,需要将这些函数在 VC 中重新实现,本教程提供了这样的参考。 更多的时候,用户学习编程语言最先接触的是控制台的界面,通过本教程可以深入了解界面相关的操 作,对于 Win32 窗口界面的程序来说,基于控制台窗口的程序也有很多优点,操作简单、几乎不需要书写 与界面相关的代码就能编译并生成可执行文件,这样的程序开发速度非常快,一些对于界面要求不是很高 的小工具用它开发,比花更多的时间去处理窗口程序的界面要划得来。 从 Windows 2000 以后,Windows 操作系统中的控制台已经不再是那个古老的,只能在 Windows 系统划 分的一块内存中模拟运行的 16 位程序了,现在的控制台窗口是一个与窗口程序有着相同特性的特殊窗口程 序,说它特殊是它只能显示字符,而且是命令行的,但它几乎支持窗口程序的所有功能,比如多线程、网 络通信、以及其它的 Windows 程序开发用的技术等,除了涉及到界面的东西以外,它可以完成你想要的所 有功能,当然 Windows 的 API 也可以完全由它来调用。 在众多 C++开发工具中,由于 Microsoft 本身的独特优势,选用 Visual C++已越来越被众多学习者所 接受。显然,现今如果还再把 TC 作为开发环境的话,不仅没有必要,而且也不利于向 Windows 应用程序开 发的过渡。然而,Visual C++的 C++专用库却没有 TC 所支持的文本屏幕(控制台窗口)控制函数(相应的头文 件是 conio.h)。这必然给 C++学习者在文本界面设计和编程上带来诸多不便。要知道,文本界面设计是一 种深入学习 C++、 掌握交互系统的实现方法的最简单的一种手段, 它不像 C++的 Windows 图形界面应用程序, 涉及知识过多。为此,本系列文章讨论在 Visual Studio 开发环境中,如何编写具有美观清晰的控制台窗 口界面的 C++应用程序,并且只介绍输入、输出和界面相关的东西,即只涉及控制台的人机交互方面,其它 方面本文档并不涉及。 当然,控制台的窗口也有自己的缺点,它与窗口界面的程序没有可比性。教程中所有的示例全部可以 用 C 和 C++来实现,教程中的示例为便于学习,尽量采用的是面向过程的 C 语言的结构,部分示例还同时 C++的实现,关于这两种语言的使用,教程中不作过多讲解,这里假设读者已经具备了熟练的 C、C++语言功 底。对于只学习过 C 语言的读者,也不影响从本教程中获取想要的知识,但最后面的几个示例和小程序, 有的用 C++实现的,可能会给您带来不便,见谅,文中如有错误和不足之处,希望各位读者批C++控制台界面编程 (wyz5@ 整理)
多文档(MDI)界面设计
1.2.1 多文档界面(Multiple Document Interface)
1.用户界面:单文档界面(SDI)和多文档界面(MDI)。 单文档界面:一次只能打开一个文档。 多文档界面:有一个父窗口和多个子窗口组成。 多重窗体:程序中的各个窗体是彼此独立的。
Console.readline:该函数返回读取的一行字符。 输出:Console.Write:输出指定信息。
Console.Writeline:以行的形式输出指定信息。
4.应用(ex1-5):控制台应用程序简单应用。
第1章 多文档(MDI)界面设计
1.1 多重窗体的操作
⒉ 与多重窗体程序设计有关的方法
⑴ Close方法 格式:窗体对象名.Close 作用:关闭指定的窗体,释放窗体所占用的资源。
⑵ Show方法 格式:窗体对象名.Show 作用:显示一个窗体。
(3) Hide方法 格式:窗体对象名.Hide 作用:隐藏窗体。
Form1.Hide ‘错误 : Form2.Show ‘错误
注:在中,Form2是一个类名,不是窗体名称,要 引用窗体Form2,必须建立它的实例,通过实例引用窗体。
上面的代码应改为: Dim F2 As New Form2 : F2.Show : Me.Hide
第1章 多文档(MDI)界面设计
主讲教师 刘苗苗
高级编程
课程相关:
• 教材:基于的数据库应用程序设计 • 学时分配:理论36学时 实验28学时 • 考试形式:机试
高级编程
课程主要内容:
第1章 第2章 第3章 第4章 第5章 第6章 第7章 第8章
多文档界面的设计 键盘和鼠标事件 面向对象的程序设计 文件操作 图形与多媒体程序设计 使用创建Web应用程序 数据库应用程序设计 WEB综合程序设计--留言板的制作
MA1控台界面介绍
括控制台所控制的调光通道或电脑灯型号数量等的设置,自动生成 预置,效果,编组等等。 BACKUP 备份键,进入备份界面。 TOOLS 工具键,进入系统网络工具等界面。
十一 命令键区
ASSIGN 分配键按亮,然后按某个执行键(或执行杆), 就进入执行键(杆)的设定界面,也可以重新分配程序给这个 执行键(杆)。 ALIGN 排列键,选择排列及排列方式。可以使输入的数 值自动按照从小到大,从大到小等方式排列。很有用哟。 OOPS 后悔键,每按一次,撤消刚才的操作一步,相当 于电脑上的 UNDO 功能。可以撤消 20 步。 MOVE 移动键,可以用来重新布局屏幕的内容,执行键 (杆)的程序等。 ESCCAPE 键,相当于电脑键盘上的 ESC 键,用于退出当前的操作,比如错按了 DELETE 键,那就按一下 ESCCAPE 键退出吧。 DELETE 删除键,用于删除程序,窗口,效果等。 COPY 拷贝键,用于复制程序,效果等。
提示:如何快速 的将所有页中所有执行键和执行杆中的程序停止 运行?按 OFF 键两次,屏幕出现如NG OFF。 这时控制台已没有任何程序运行,如果再 按 CLEAR 键三次,控制台应没有任何控制指令发 出,舞台上也就不应有灯亮着,全部回到初始状 态。
幕右旋钮,主要用于滚动翻阅屏幕信息,正常旋转旋钮,光标上下移动。按下旋 钮 并旋转,光标位置左右移动。 屏幕下旋钮,4 个,用于调节设定数值,在不同的界面状态下,输入的数值含义 不同。 可以用它们调节灯具的亮度,颜色,图案,位置等参数。正常 旋转选钮为微调,按下并旋转为快速粗调。
三 执行键区 程序执行键,5 只 X4 排,共 20 只(最大的型号是 40 只)。 可以翻 64 页。用于存储和调用程序。 执行键时间杆,在执行键右侧,用于设定执行键之间的 切换时间。
TS-608控制台设置手册
TS-5(608)网络型液位仪控制台设置手册目录敬告 (2)1. 控制台主界面 (3)2. 语言设置 (4)3. 日期/时间设置 (6)4. 单位设置 (7)4.1 容积单位设置 (8)4.2 长度单位设置 (9)4.3 温度单位设置 (10)5. 时区设置 (11)6. 系统时钟设置 (12)7. 系统ID设置 (14)8. 探棒模块设置 (15)9. 油品管理设置 (19)9.1 油罐设置 (19)9.2 探棒设置 (21)9.3 浮子设置 (23)10. 特殊油罐设置 (25)10.1 形状设置 (26)10.2 罐容表设置 (27)11. 油品设置 (29)12. 退出设置菜单 (31)13. 保存设置 (32)14. 冷启动系统 (32)本手册所包含的内容受版权保护,版权归INCON公司所有。
该文件将告诉你如何通过LCD液晶显示屏来设置TS-608控制台。
1. 控制台主界面首先将TS-608接通电源, 这时控制台显示屏上出现美国富兰克林加油系统公司的公司logo,等待大约在一分钟后,logo下方会出现Loading User Interface…字样,接着会出现如下方所示界面.要开始设置,请按主页/状态界面的主菜单按钮。
现在我们看到的是主菜单界面。
你需要把显示语言改成中文。
点击Preferences按钮进入相关设置界面。
2. 语言设置Preferences菜单可以让你选择控制台所使用的语言。
要把语言换成中文,点击Language按钮。
在语言菜单中列出了控制台所支持的所有语言。
按第一行中间的按钮选择简体中文。
由于控制台的用户不是管理员,所以你需要输入正确的管理员密码。
默认的管理员密码为admin。
要想把键盘改成小写字母,点击向右的箭头。
一旦你按了这个按钮,键盘就变成了小写字母。
用这个键盘输入“admin”。
输入完这个单词,按下如图所示的确认键。
界面会自动返回到上图所示界面。
你的控制台现在已经变成中文显示了。
C语言中的人机交互和用户体验设计
C语言中的人机交互和用户体验设计C语言作为一种广泛应用于软件开发领域的编程语言,人机交互和用户体验设计在其中扮演着至关重要的角色。
本文将探讨C语言中的人机交互原理以及如何设计良好的用户体验。
一、人机交互原理人机交互是指人与计算机之间进行信息交流和交互的过程。
在C语言中,人机交互主要通过控制台窗口进行。
下面我们将讨论如何在C语言中实现基本的人机交互。
1. 输入函数C语言中提供了多种输入函数,如scanf和getchar等。
通过这些函数,用户可以从控制台输入数据,供程序进行处理。
例如,使用scanf函数可以按照给定的格式读取用户输入的数据,并将其存储到变量中,实现数据的读取和交互。
2. 输出函数C语言中的输出函数有printf和puts等。
这些函数使程序能够将结果输出到控制台窗口,与用户进行交互。
通过格式化输出,我们可以提供更加友好的信息提示,增强用户体验。
二、用户体验设计用户体验设计是指通过科学的方法和设计理论来提升用户使用产品时的满意度和舒适度。
在C语言中,良好的用户体验设计可以使用户更加容易理解和操作程序,提高其使用效率和满意度。
下面我们将介绍一些常用的用户体验设计原则和技巧。
1. 界面设计界面设计是用户体验设计的重要方面之一。
在C语言中,可以通过控制台窗口的设计来实现良好的界面效果。
合理布局控制台窗口的信息显示和交互控制元素,有效利用颜色、字体、图标等元素,以提升用户的可视化体验。
2. 错误处理良好的用户体验设计也包括对错误情况的处理。
在C语言中,我们可以通过添加错误处理机制,如异常处理和错误提示,来帮助用户更好地理解和解决问题。
例如,及时给出清晰的错误信息,引导用户找到错误的原因和解决方案。
3. 功能设计在设计C语言程序时,合理地划分功能模块可以提高用户体验。
将复杂的功能分解为简单的操作步骤,减少用户的操作负担。
同时,我们可以通过增加交互式功能和程序状态提示,以及提供快捷键和命令行参数等方式来提高用户的操作效率。
vc怎样设置控制台窗口界面
VC怎样设置控制台窗口界面一、概述所谓控制台应用程序,就是指那些需要与传统DOS操作系统保持某种程序的兼容,同时又不需要为用户提供完善界面的程序。
简单地讲,就是指在Windows环境下运行的DOS程序。
一旦C++控制台应用程序在Windows 9x/NT/2000操作系统中运行后,就会弹出一个窗口。
例如下列过程:单击Visual C++标准工具栏上的“New Text File”按钮,打开一个新的文档窗口。
选择File | Save菜单或按快捷键Ctrl+S或单击标准工具栏的Save 按钮,弹出“保存为”文件对话框。
将文件名为“Hello.cpp” (注意扩展名.cpp 不能省略)。
在文档窗口中输入下列代码:#include<iostream.h>{cout<<"Hello, Console!"<<endl;}单击小型编译工具栏中的“Build”按钮或按F7键,系统出现一个对话框,询问是否将此项目的工作文件夹设定源文件所在的文件夹,单击[是]按钮,系统开始编译。
单击小型编译工具栏中的“Execute Program”按钮或按Ctrl+F5键,运行刚才的程序。
程序运行后,弹出下图的窗口。
这就是控制台窗口,与传统的DOS屏幕窗口相比最主要的区别有:(1) 默认的控制台窗口有系统菜单和标题,它是一个内存缓冲区窗口,缓冲区大小取决于Windows操作系统的分配;而DOS屏幕是一种物理窗口,不具有Windows窗口特性,其大小取决于ROM BIOS分配的内存空间。
(2) 控制台窗口的文本操作是调用低层的Win32 APIs,而DOS屏幕的文本操作是通过调用BIOS的16(10h)中断而实现的。
(3) 默认的控制台窗口可以接收键盘和鼠标的输入信息,设备驱动由Windows管理,而DOS屏幕窗口接收鼠标时需要调用33h中断,且鼠标设备驱动程序由自己安装。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要:文本界面的控制台应用程序开发是深入学习C++、掌握交互系统的实现方法的最简单的一种手段。
然而,Visual C++的C++专用库却没有TC所支持的文本(字符)屏幕控制函数,为此本系列文章从一般控制步骤、控制台窗口操作、文本(字符)控制、滚动和移动、光标、键盘和鼠标等几个方面讨论控制台窗口界面的编程控制方法。
在众多C++开发工具中,由于Microsoft本身的独特优势,选用Visual C++已越来越被众多学习者所接受。
显然,现今如果还再把TC作为开发环境的话,不仅没有必要,而且也不利于向Windows应用程序开发的过渡。
然而,Visual C++的C++专用库却没有TC所支持的文本屏幕(控制台窗口)控制函数(相应的头文件是conio.h)。
这必然给C++学习者在文本界面设计和编程上带来诸多不便。
要知道,文本界面设计是一种深入学习C++、掌握交互系统的实现方法的最简单的一种手段,它不像C++的Windows图形界面应用程序,涉及知识过多。
为此,本系列文章来讨论在Visual C++ 6.0开发环境中,如何编写具有美观清晰的控制台窗口界面的C++应用程序。
一、概述所谓控制台应用程序,就是指那些需要与传统DOS操作系统保持某种程序的兼容,同时又不需要为用户提供完善界面的程序。
简单地讲,就是指在Windows环境下运行的DOS程序。
一旦C++控制台应用程序在Windows 9x/NT/2000操作系统中运行后,就会弹出一个窗口。
例如下列过程:单击Visual C++标准工具栏上的“New Text File”按钮,打开一个新的文档窗口。
选择File | Save菜单或按快捷键Ctrl+S或单击标准工具栏的Save按钮,弹出“保存为”文件对话框。
将文件名为“Hello.cpp” (注意扩展名.cpp不能省略)。
在文档窗口中输入下列代码:#includevoid main(){cout<<"Hello, Console!"< }单击小型编译工具栏中的“Build”按钮或按F7键,系统出现一个对话框,询问是否将此项目的工作文件夹设定源文件所在的文件夹,单击[是]按钮,系统开始编译。
单击小型编译工具栏中的“Execute Program”按钮或按Ctrl+F5键,运行刚才的程序。
程序运行后,弹出下图的窗口。
这就是控制台窗口,与传统的DOS屏幕窗口相比最主要的区别有:(1) 默认的控制台窗口有系统菜单和标题,它是一个内存缓冲区窗口,缓冲区大小取决于Windows操作系统的分配;而DOS屏幕是一种物理窗口,不具有Windows窗口特性,其大小取决于ROM BIOS分配的内存空间。
(2) 控制台窗口的文本操作是调用低层的Win32 APIs,而DOS屏幕的文本操作是通过调用BIOS的16(10h)中断而实现的。
(3) 默认的控制台窗口可以接收键盘和鼠标的输入信息,设备驱动由Windows管理,而DOS屏幕窗口接收鼠标时需要调用33h中断,且鼠标设备驱动程序由自己安装。
二、控制台文本窗口的一般控制步骤在Visual C++ 6.0中,控制台窗口界面的一般编程控制步骤如下:调用GetStdHandle获取当前的标准输入(STDIN)和标准输出(STDOUT)设备句柄。
函数原型为:HANDLE GetStdHandle( DWORD nStdHandle );其中,nStdHandle可以是STD_INPUT_HANDLE(标准输入设备句柄)、STD_OUTPUT_HANDLE(标准输出设备句柄)和STD_ERROR_HANDLE(标准错误句柄)。
需要说明的是,“句柄”是Windows最常用的概念。
它通常用来标识Windows资源(如菜单、图标、窗口等)和设备等对象。
虽然可以把句柄理解为是一个指针变量类型,但它不是对象所在的地址指针,而是作为Windows系统内部表的索引值来使用的。
调用相关文本界面控制的API函数。
这些函数可分为三类。
一是用于控制台窗口操作的函数(包括窗口的缓冲区大小、窗口前景字符和背景颜色、窗口标题、大小和位置等);二是用于控制台输入输出的函数(包括字符属性操作函数);其他的函数并为最后一类。
调用CloseHandle()来关闭输入输出句柄。
注意,在程序中还必须包含头文件windows.h。
下面看一个程序:#includevoid main(){HANDLE hOut;hOut = GetStdHandle(STD_OUTPUT_HANDLE);// 获取标准输出设备句柄CONSOLE_SCREEN_BUFFER_INFO bInfo; // 窗口信息GetConsoleScreenBufferInfo(hOut, &bInfo );// 获取窗口信息printf("\n\nThe soul selects her own society,\n");printf("Then shuts the door;\n");printf("On her devine majority\n");printf("Obtrude no more.\n\n");_getch();COORD pos = {0, 0};FillConsoleOutputCharacter(hOut, ' ', bInfo.dwSize.X *bInfo.dwSize.Y, pos, NULL);// 向窗口中填充字符以获得清屏的效果CloseHandle(hOut); // 关闭标准输出设备句柄}程序中,COORD和CONSOLE_SCREEN_BUFFER_ INFO是wincon.h定义的控制台结构体类型,其原型如下:// 坐标结构体typedef struct _COORD {SHORT X;SHORT Y;} COORD;// 控制台窗口信息结构体typedef struct _CONSOLE_SCREEN_BUFFER_INFO {COORD dwSize; // 缓冲区大小COORD dwCursorPosition; // 当前光标位置WORD wAttributes; // 字符属性SMALL_RECT srWindow; // 当前窗口显示的大小和位置COORD dwMaximumWindowSize; // 最大的窗口缓冲区大小} CONSOLE_SCREEN_BUFFER_INFO ;还需要说明的是,虽然在C++中,iostream.h定义了cin和cout的标准输入和输出流对象。
但它们只能实现基本的输入输出操作,对于控制台窗口界面的控制却无能为力,而且不能与stdio.h和conio.h友好相处,因为iostream.h和它们是C++两套不同的输入输出操作方式,使用时要特别注意。
三、控制台窗口操作用于控制台窗口操作的API函数如下:此外,还有窗口字体、显示模式等控制函数,这里不再细说。
下列举一个示例,程序如下:#include#include#includevoid main(){HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);// 获取标准输出设备句柄CONSOLE_SCREEN_BUFFER_INFO bInfo; // 窗口缓冲区信息GetConsoleScreenBufferInfo(hOut, bInfo );// 获取窗口缓冲区信息char strTitle[255];GetConsoleTitle(strTitle, 255); // 获取窗口标题printf("当前窗口标题是:%s\n", strTitle);_getch();SetConsoleTitle("控制台窗口操作"); // 获取窗口标题_getch();COORD size = {80, 25};SetConsoleScreenBufferSize(hOut,size); // 重新设置缓冲区大小_getch();SMALL_RECT rc = {0,0, 80-1, 25-1}; // 重置窗口位置和大小SetConsoleWindowInfo(hOut,true ,&rc);CloseHandle(hOut); // 关闭标准输出设备句柄}需要说明的是,控制台窗口的原点坐标是(0, 0),而最大的坐标是缓冲区大小减1,例如当缓冲区大小为80*25时,其最大的坐标是(79, 24)。
四、文本属性操作与DOS字符相似,控制台窗口中的字符也有相应的属性。
这些属性分为:文本的前景色、背景色和双字节字符集(DBCS)属性三种。
事实上,我们最关心是文本颜色,这样可以构造出美观的界面。
颜色属性都是一些预定义标识:与文本属性相关的主要函数有:BOOL FillConsoleOutputAttribute( // 填充字符属性HANDLE hConsoleOutput, // 句柄WORD wAttribute, // 文本属性DWORD nLength, // 个数COORD dwWriteCoord, // 开始位置LPDWORD lpNumberOfAttrsWritten // 返回填充的个数);BOOL SetConsoleTextAttribute( // 设置WriteConsole等函数的字符属性HANDLE hConsoleOutput, // 句柄WORD wAttributes // 文本属性);BOOL WriteConsoleOutputAttribute( // 在指定位置处写属性HANDLE hConsoleOutput, // 句柄CONST WORD *lpAttribute, // 属性DWORD nLength, // 个数COORD dwWriteCoord, // 起始位置LPDWORD lpNumberOfAttrsWritten // 已写个数);另外,获取当前控制台窗口的文本属性是通过调用函数GetConsoleScreenBufferInfo后,在CONSOLE_SCREEN_ BUFFER_INFO结构成员wAttributes中得到。
五、文本输出文本输出函数有:BOOL FillConsoleOutputCharacter( // 填充指定数据的字符HANDLE hConsoleOutput, // 句柄TCHAR cCharacter, // 字符DWORD nLength, // 字符个数COORD dwWriteCoord, // 起始位置LPDWORD lpNumberOfCharsWritten // 已写个数);BOOL WriteConsole( // 在当前光标位置处插入指定数量的字符HANDLE hConsoleOutput, // 句柄CONST VOID *lpBuffer, // 字符串DWORD nNumberOfCharsToWrite, // 字符个数LPDWORD lpNumberOfCharsWritten, // 已写个数LPVOID lpReserved // 保留);BOOL WriteConsoleOutput( // 向指定区域写带属性的字符HANDLE hConsoleOutput, // 句柄CONST CHAR_INFO *lpBuffer, // 字符数据区COORD dwBufferSize, // 数据区大小COORD dwBufferCoord, // 起始坐标PSMALL_RECT lpWriteRegion // 要写的区域);BOOL WriteConsoleOutputCharacter( // 在指定位置处插入指定数量的字符HANDLE hConsoleOutput, // 句柄LPCTSTR lpCharacter, // 字符串DWORD nLength, // 字符个数COORD dwWriteCoord, // 起始位置LPDWORD lpNumberOfCharsWritten // 已写个数);可以看出:WriteConsoleOutput函数功能相当于SetConsoleTextAttribute 和WriteConsole的功能。