收藏 分享(赏)

基本的支持.doc

上传人:11xg27ws 文档编号:8719742 上传时间:2019-07-09 格式:DOC 页数:16 大小:45KB
下载 相关 举报
基本的支持.doc_第1页
第1页 / 共16页
基本的支持.doc_第2页
第2页 / 共16页
基本的支持.doc_第3页
第3页 / 共16页
基本的支持.doc_第4页
第4页 / 共16页
基本的支持.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、基本的支持个人中心 我的主页 好友 消息(1)好友添加 (0)留言评论 (0)系统通知 (0)站内消息 (1)panruishi123| 装扮 | 设置| 退出 一滴水里的海 The Tao Of Programming 主页博客相册|个人档案 |好友 查看文章 控制台窗口界面的编程控制(一)2008-05-23 18:492002-09-13 09:31 作者: 丁有和 出处: yesky 责任编辑: 文本界面的控制台应用程序开发是深入学习 C+、掌握交互系统的实现方法的最简单的一种手段。然而,Visual C+的 C+专用库却没有 TC 所支持的文本(字符)屏幕控制函数,为此本系列文章从一

2、般控制步骤、控制台窗口操作、文本(字符)控制、滚动和移动、光标、键盘和鼠标等几个方面讨论控制台窗口界面的编程控制方法。在众多 C+开发工具中,由于 Microsoft 本身的独特优势,选用 Visual C+已越来越被众多学习者所接受。显然,现今如果还再把 TC 作为开发环境的话,不仅没有必要,而且也不利于向 Windows应用程序开发的过渡。然而,Visual C+的 C+专用库却没有 TC 所支持的文本屏幕(控制台窗口)控制函数(相应的头文件是 conio.h)。这必然给 C+学习者在文本界面设计和编程上带来诸多不便。要知道,文本界面设计是一种深入学习 C+、掌握交互系统的实现方法的最简单

3、的一种手段,它不像 C+的 Windows 图形界面应用程序,涉及知识过多。为此,本系列文章来讨论在 Visual C+ 6.0 开发环境中,如何编写具有美观清晰的控制台窗口界面的 C+应用程序。一、概述所谓控制台应用程序,就是指那些需要与传统 DOS 操作系统保持某种程序的兼容,同时又不需要为用户提供完善界面的程序。简单地讲,就是指在 Windows 环境下运行的 DOS 程序。一旦 C+控制台应用程序在 Windows 9x/NT/2000 操作系统中运行后,就会弹出一个窗口。例如下列过程:单击 Visual C+标准工具栏上的“New Text File”按钮,打开一个新的文档窗口。 选

4、择 File | Save 菜单或按快捷键 Ctrl+S 或单击标准工具栏的Save 按钮,弹出“保存为”文件对话框。将文件名为“Hello.cpp” (注意扩展名.cpp 不能省略)。 在文档窗口中输入下列代码:#include void main()cout HANDLE hOut;void ShadowWindowLine(char *str); / 在具有阴影效果的窗口中显示一行字符,窗口为居中显示void DrawBox(bool bSingle, SMALL_RECT rc); / 绘制边框void main()hOut = GetStdHandle(STD_OUTPUT_HAND

5、LE); / 获取标准输出设备句柄SetConsoleOutputCP(437); / 设置代码页ShadowWindowLine(“Display a line of words, and center the window with shadow.“);CloseHandle(hOut); / 关闭标准输出设备句柄void ShadowWindowLine(char *str)CONSOLE_SCREEN_BUFFER_INFO bInfo; / 窗口缓冲区信息GetConsoleScreenBufferInfo( hOut, / 获取窗口缓冲区信息/ 计算显示窗口大小和位置int x1,

6、 y1, x2, y2, chNum = strlen(str);x1 = (bInfo.dwSize.X - chNum)/2 - 2;y1 = bInfo.dwSize.Y/2 - 2;x2 = x1 + chNum + 4;y2 = y1 + 5;WORD att1 = BACKGROUND_INTENSITY; / 阴影属性WORD att0 = FOREGROUND_RED |FOREGROUND_GREEN |FOREGROUND_BLUE | FOREGROUND_INTENSITY |BACKGROUND_RED | BACKGROUND_BLUE; / 文本属性WORD at

7、tText = FOREGROUND_RED |FOREGROUND_INTENSITY; / 文本属性/ 设置阴影COORD posShadow = x1+1, y1+1, posText = x1, y1;for (int i=0; i5; i+)FillConsoleOutputAttribute(hOut, att1, chNum + 4, posShadow, NULL); posShadow.Y+;/ 填充窗口背景for (i=0; i5; i+)FillConsoleOutputAttribute(hOut, att0, chNum + 4, posText, NULL); po

8、sText.Y+;/ 写文本和边框posText.X = x1 + 2;posText.Y = y1 + 2;WriteConsoleOutputCharacter(hOut, str, strlen(str), posText, NULL);SMALL_RECT rc = x1, y1, x2-1, y2-1;DrawBox(true, rc);SetConsoleTextAttribute(hOut, bInfo.wAttributes); / 恢复原来的属性void DrawBox(bool bSingle, SMALL_RECT rc)char chBox6;if (bSingle)

9、chBox0 = (char)0xda; / 左上角点chBox1 = (char)0xbf; / 右上角点chBox2 = (char)0xc0; / 左下角点chBox3 = (char)0xd9; / 右下角点chBox4 = (char)0xc4; / 水平chBox5 = (char)0xb3; / 坚直 else chBox0 = (char)0xc9; / 左上角点chBox1 = (char)0xbb; / 右上角点chBox2 = (char)0xc8; / 左下角点chBox3 = (char)0xbc; / 右下角点chBox4 = (char)0xcd; / 水平chB

10、ox5 = (char)0xba; / 坚直COORD pos = rc.Left, rc.Top;WriteConsoleOutputCharacter(hOut, for (pos.X = rc.Left + 1; pos.X WriteConsoleOutputCharacter(hOut, pos.X = rc.Right;WriteConsoleOutputCharacter(hOut, for (pos.Y = rc.Top+1; pos.Y pos.X = rc.Left;WriteConsoleOutputCharacter(hOut, pos.X = rc.Right;Wri

11、teConsoleOutputCharacter(hOut, pos.X = rc.Left; pos.Y = rc.Bottom;WriteConsoleOutputCharacter(hOut, for (pos.X = rc.Left + 1; pos.X WriteConsoleOutputCharacter(hOut, pos.X = rc.Right;WriteConsoleOutputCharacter(hOut, 程序运行结果如下图所示。需要说明的是,上述程序在不同的字符代码页面(code page)下显示的结果是不同的。例如,中文 Windows 操作系统的默认代码页是简体中

12、文(936),在该代码页面下值超过 128 的单字符在 Windows NT/XP 是显示不出来的。下表列出了可以使用的代码页。代码页(Code page) 说 明 1258 越南文 1257 波罗的海文 1256 阿拉伯文 1255 希伯来文 1254 土耳其语 1253 希腊文 1252 拉丁文(ANSI) 1251 斯拉夫文 1250 中欧文 950 繁体中文 949 韩文 936 简体中文 932 日文 874 泰文 850 使用多种语言(MS-DOS 拉丁文) 437 MS-DOS 美语/英语 类别:编程相关 | | 添加到搜藏 | 分享到 i 贴吧 | 浏览(3701) | 评论

13、(1) 上一篇:如何实现获取 DOS 窗口输出的内容 下一篇:控制台窗口界面的编程控制(二) 已有 7 人分享了这篇文章:yeswewillTa 的转贴 白菜清安 Ta 的转贴 wlyflsTa 的转贴 AlphaBlendTa 的转贴 mayadong7349Ta 的转贴 prideskyTa 的转贴 xiao_yu_fengTa 的转贴 相关文章:? 控制台窗口界面的编程控制(二) ? 控制台窗口界面控制设计(二) ? 控制台窗口界面的编程控制 ? linux 控制台(console)和图形化界. ? 用 VB 建立字符界面的控制台程序 ? C# 方法间的相互调用-用 C#编写. ? Linux 启动到文字界面(控制台或者. ? 第一个程序(学生成绩管理系统. ? S 代理控制台 - 集. 最近读者: free_eedos 只为不再后悔 crcyspa2010 xfjhh xlikefly duccdd a061006331 hongzaier 网友评论:1 明次 2010-04-16 20:47 | 回复 哇 beautiful! 发表评论:姓 名: panruishi123 *姓名最长为 50 字节 内 容: 插入表情 闪光字 验证码: 请点击后输入四位验证码,字母不区分大小写看不清? 取消回复 ?2011 Baidu 哇 beautiful!

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报