版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C言语的菜单制造图形化菜单 要完成一个菜单需求思索以下几个方面: 菜单的定义 保管部分屏幕 恢复期望的屏幕 用户的呼应值传送 如何显示菜单 可以利用输出字符画出主界面上的边框和主菜单的背景区域。然后再显示主菜单,最后画出下拉菜单。仿TC 利用ASCII中的特殊字符。如218为,196为,179为,191为,192为,217为来画出运用程序的边框。菜单的定义 思索用什么来表示菜单及其子菜单?Struct menu char name10 /*菜单名菜单名*/ char sub1020 /*下拉菜单下拉菜单*/ int n /*几个选项几个选项*/例如例如 system(cls); /*调用系统的
2、清屏命令*/ stdlib.h textbackground(BLUE);/*将文本背景设置为蓝色*/ conio.h window(1,1,25,80); /*定义活动文本方式窗口*/ conio.h clrscr(); /*去除文本方式窗品*/ textx=3; texty=2; /*光标初始化位置*/ gotoxy(1,2); /*在文本窗口中设置光标*/ printf(%c,218); /*画左上角*/ for(i=0;i78;i+) printf(%c,196); /*画程度直线*/ printf(%c,191);/*画右上角*/ for(i=3;i=23;i+) gotoxy(1,
3、i); printf(%c,179); /*画垂直线*/ gotoxy(80,i); printf(%c,179); printf(%c,192); /*画左下角*/ for(i=0;i78;i+) printf(%c,196); printf(%c,217); /*画右下角*/ gotoxy(1,1); textcolor(7); /*设置文本颜色灰色*/ for(i=0;i80;i+) cprintf(%c,219);/*用符号实现画主菜单的灰色背景区*/Cprintf与printf1.cprintf函数用于向当前窗口输出数据,比如他用window函数定义一个窗口 window(20,10
4、,60,20),那么当他调用cprintf函数时,cprintf的输出就是相对于20,10, 60,20这个窗口,当输出的字符串长度大于当前窗口长度时,会在当前窗口自动换行。 2.cprintf函数可以配合setcolor,setbkcolor等函数运用,而调用printf函数时会忽略这些 函数执行的结果。 Cprintf和printf 比如执行:setcolor(RED); cprintf(Hello world); printf(Hello); 将会在屏幕上显示红色字符串:Hello world 和白色字符串(由于setcolor函数对printf函数不起作用)Hello 在原来的C言语中
5、,cprintf中的c代表console,就是控制 台.(conio.h中的con也是这个意思)到了windows也承继了这 个渊源。 按照设计者本来的意图,printf是规范输出,就是指可以完 全不知道他输出的对象,只是以规范的文本流方式输出。 cprintf是与终端相关的,要用到一些系统平台,硬件设备相关的 特性,所以可以有颜色等很多东西可供选择,同时也减弱了移 植性,所以cprintf是非规范的。定义菜单 在前面定义了表示菜单的构造体。如今需求定义详细的菜单。菜单项应该放在构造体数组中。如mainmenui就表示程度的第i个菜单主菜单为菜单的名字,而mainm
6、enui.subj那么表示第i个主菜单下的第j个下拉选项。例如 void Selectitem() strcpy(,“File); /*下面的详细选项补空格是为了各菜单黑色背景一样*/ strcpy(ml0.str0,“New ); strcpy(ml0.str1,“Load ); strcpy(ml0.str2,“Save ); strcpy(ml0.str3,Exit ); ml0.n=6; /*保管菜单的项数*/ . 画出菜单 定义了每一个详细的菜单项,如今需求把它们统统都显示出来。对于正常菜单来说,显示菜单灰底黑色且首字符为红色的款式,表示菜单未选中。但当光标挪动到某个
7、菜单项选择项上时,那么需求改动背景和文本颜色,以示该选项被选中。例如例如/*显示主单名显示主单名*/void DrawSelectitem() for(i=0;i3;i+)RedText(i,1,); /*显示主菜单名,且首字母为红色显示主菜单名,且首字母为红色*/*正常显示菜单正常显示菜单*/void RedText(int x,int y,char *z) textbackground(7); /*设置背景颜色为浅灰色设置背景颜色为浅灰色*/ gotoxy(3+x*20,y); for(j=0;zj;j+) if(j=0) textcolor(RED);/*第一个字母显示红
8、色第一个字母显示红色*/ else textcolor(BLACK); /*设置黑色设置黑色*/ cprintf(%c,zj); /*输出菜单名输出菜单名*/ 显示选中的菜单例如 /*显示选中菜单*/ void BlackText(int x,int y,char *z) textbackground(0); /*设置背景颜色为黑色*/ textcolor(15); /*设置文本颜色为白色*/ gotoxy(3+20*x,y);/*定位坐标*/ cputs(z); /*输出菜单名字符串*/ 画边框和画下拉菜单 为突出显示菜单,需求为下拉菜单设定背景颜色和文本颜色,并填加边框。设定边框的左上角坐
9、标为l和u,右下角的坐标为r和d。 留意:此边框和前面画的不一样,前面是画的整个运用程序的边框。/*画边框函数画边框函数*/void DrawFrame(int l,int u,int r,int d,int tcolor,int bcolor) textbackground(bcolor); /*背景颜色背景颜色*/ textcolor(bcolor); /*文本颜色文本颜色*/ for(i=l;i=r;i+) /*输出背景区域输出背景区域*/ for(j=u;j=d;j+) gotoxy(i,j); printf(%c,219); /*输出背景字符输出背景字符*/ textcolor(tc
10、olor);/*边框颜色边框颜色*/ for(i=u+1;id;i+) /*在背景区域内输出边框线在背景区域内输出边框线*/ gotoxy(l,i); cprintf(%c,179); /*垂直线垂直线*/ gotoxy(r,i); cprintf(%c,179); for(i=l+1;ir;i+) gotoxy(i,u);cprintf(%c,196); /*程度线程度线*/ gotoxy(i,d); cprintf(%c,196); gotoxy(l,u); cprintf(%c,218);/*左上角左上角*/ gotoxy(r,u); cprintf(%c,191);/*右上右上角角*/
11、 gotoxy(l,d); cprintf(%c,192);/*左下角左下角*/ gotoxy(r,d); cprintf(%c,217); /*右右下角下角*/画下拉菜单 中选择了主菜单后,就需求调用画下拉菜单函数。首先保管当前区域,以备未来恢复,然后返选显示主菜单,同时调用画边框函数显示下拉菜单的边框,在下拉菜单区域内显示各菜单项选择项,设置默许选项为第一项,其他各项首字符为红色。 /*显示详细下拉选择工程*/ void DrawMl(int n) gettext(1,1,80,25,save);/*保管被掩盖的地方*/ BlackText(n,1,);/*反选显示主菜单*
12、/ DrawFrame(3+20*n-1,2,3+20*n+19,3+mln.n,0,7);/*下拉菜单的边框*/ for(i=3;i3+mln.n;i+)/*输出所选菜单各选项*/ if(i=3) BlackText(n,i,mln.stri-3);/*默许选中第一项*/ else RedText(n,i,mln.stri-3);/*其他各项首字符红色显示*/ gotoxy(79,1); MoveMl(n,3);/*菜单项选择项的控制*/ 菜单项选择项的控制 选择菜单的时候,可以接受的键盘操作可以是程度方向和垂直方向。 当所按键为: ESC键,恢复翻开菜单前的界面,退出循环。 Left左光标
13、键,恢复翻开当前下拉菜单前的界面,显示前一个下拉菜单,即取消当前的下拉菜单,显示新的下拉菜单。等等最后一步了! 如何知用户按了哪个键喃? 键盘的操作分两类:一个是在屏幕编辑区的操作,另一个是在菜单区的操作。 需求运用全局变量来记录当前光标的位置。 需求详细定义某个键对应的操作。 需求运用循环不断监听,直到用户退出。完好例如 Menu.c 同窗们仔细研讨一下再写函数名: bioskey 功 能: 直接运用BIOS效力的键盘接口 函数原型:int bioskey (int cmd) 阐明:bioskey()的函数原型在bios.h中 bioskey()完成直接键盘操作,cmd的值决议执行什么操作。 cmd = 0: 当cmd是0,bioskey()前往下一个在键盘键入的值它将等待到按下一个键。它前往一个16位的二进制数,包括两个不同的值。当按下一个普通键时,它的低8位数存放该字符的ASCII
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 钢铁行业市场产能格局及投资优化规划分析研究报告
- 金融衍生品行业市场目前状态评估需求评定供应分析及投资评估规划前景发展研究报告
- 都市规划行业市场供给需求分析及投资评估规划分析研究报告
- 透明显示屏行业市场现状供需分析及投资评估规划研究报告
- 西班牙建筑玻璃材料行业供需调研生产业投资评估分析报告
- 2026年税务师考试题库及1套完整答案
- 2025年德化县幼儿园教师招教考试备考题库带答案解析(必刷)
- 英国奢侈品消费行业市场现状供需分析及投资评估规划分析研究报告
- 苏州工业机器人行业市场现状供需分析及投资评估规划分析研究报告
- 艺术品交易平台行业市场发展分析及前景趋势预测与投融资研究报告
- 图形创意应用课件
- 胸痛中心联合例会与质控分析会-ACS患者如何更好的管理时间
- 北京师范大学珠海校区
- 竖窑控制系统手册
- 煤矿投资可行性研究分析报告
- DOE实验设计实例分析(附理论培训教程)课件
- DB4403-T 63-2020 建设工程施工噪声污染防治技术规范-(高清现行)
- 高强度螺栓连接施拧记录
- 外墙干挂石材修补施工方案
- 8.达托霉素在感染性心内膜炎的治疗优势
- GB∕T 7758-2020 硫化橡胶 低温性能的测定 温度回缩程序(TR 试验)
评论
0/150
提交评论