C语言控制台界面编程(修正版).docxVIP

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
这就是控制台窗口,与传统的 这就是控制台窗口,与传统的 DOS屏幕窗口相比最主要的区别有: 控制台窗口界面编程控制 摘要: 文本界面的控制台应用程序开发是深入学习 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程序。 一旦控制台应用程序在 Win dows操作系统中运行后,就会弹出一个窗口。例如下列代码: #in clude <stdio.h> int main (i nt argc,char *argv[]) { printf("Hello, Console!\n"); return 0; } 单击小型编译工具栏中的 “Build ”按钮或按F7键,系统出现一个对话框,询问是否将 此项目的工作文件夹设定源文件所在的文件夹,单击 [是]按钮,系统开始编译。 单击小型 编译工具栏中的“Execute Program”按钮或按Ctrl+F5键,运行刚才的程序。 程序运行后, 弹出下图的窗口 : 默认的控制台窗口有系统菜单和标题, 它是一个内存缓冲区窗口, 缓冲区大小取决 于Windows操作系统的分配; 而DOS屏幕是一种物理窗口, 不具有 Windows窗口特性,其大 小取决于ROM BIOS分配的内存空间。 控制台窗口的文本操作是调用低层的 Win32 APIs,而DOS屏幕的文本操作是通过 调用BIOS的16(10h)中断而实现的。 默认的控制台窗口可以接收键盘和鼠标的输入信息, 设备驱动由 Windows管理,而 DOS屏幕窗口接收鼠标时需要调用 33h中断,且鼠标设备驱动程序由自己安装。 控制台文本窗口的一般控制步骤 在Visual C++ 6.0 中,控制台窗口界面的一般编程控制步骤如下:调用 GetStdHandle 获取当前的标准输入(STDIN)和标准输出(STDOUT设备句柄。函数原型为: HANDLE GetStdHa ndle( DWORD n StdHa ndle ); 其中,nStdHandle可以是STD_INPUT_HANDL标准输入设备句柄)、 STD_OUTPUT_HAND标准输出设备句柄 )和STD_ERROR_HANDl标准错误句柄)。 需要说明的是,"句柄”是 Win dows最常用的概念。它通常用来标识 Win dows资源(如 菜单、图标、窗口等)和设备等对象。虽然可以把句柄理解为是一个指针变量类型,但它不 是对象所在的地址指针,而是作为 Win dows系统内部表的索引值来使用 的。调用相关文本 界面控制的API函数。这些函数可分为三类。一是用于控制台窗口操作的函数 (包括窗口的 缓冲区大小、窗口前景字符和背景颜色、窗口标题、大小和位置等 );二是用于控制台输入 输出的函数(包括字符属性操作函数);其他的函数并为最后一类。 调用CloseHandle()来 关闭输入输出句柄。 注意,在程序中还必须包含头文件 windows.h。下面看一个程序: #i nclude <win dows.h> #in clude <stdio.h> #in clude <coni o.h> int mai n(void) { HANDLE hOut; CONSOLE_SCREEN_BUFFER_INFO bI nfo; // 存储窗口信息 COORD pos = {0, 0}; //获取标准输出设备句柄 hOut = GetStdHa ndle(STD_OUTPUT_HANDLE); //获取窗口信息 Get

文档评论(0)

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

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

1亿VIP精品文档

相关文档