控制台窗口界面控制设计
- 格式:doc
- 大小:118.50 KB
- 文档页数:20
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(人机界面)时,对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能够支持操作员工况认知、日常监视和控制操作、故障诊断活动以及异常工况管理。
怎样设置控制台窗口界面计算机专业----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中断,且鼠标设备驱动程序由自己安装。
第二章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。
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应⽤程序)⼀、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就可以绑定事件然后进⾏编辑。
摘要:文本界面的控制台应用程序开发是深入学习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的功能。