首页 c语言课程设计_菜单设计

c语言课程设计_菜单设计

举报
开通vip

c语言课程设计_菜单设计C语言课程设计_菜单设计 调试环境为TC2.0或者3.0。运行这个程序需要tc提供的几个头文件。建议修改options菜单中的include 目录项到tc的include的目录下(具体方法可以参见本书第一章的讲解);或者把源程序拷贝到tc目录下运行。 #include #include #include #include #include /*定义一些常数*/ #define NO 0 #define YES 1 #define NONE -1 #define MAX_MENU 7/*根...

c语言课程设计_菜单设计
C语言课程设计_菜单设计 调试环境为TC2.0或者3.0。运行这个程序需要tc提供的几个头文件。建议修改options菜单中的include 目录项到tc的include的目录下(具体 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 可以参见本书第一章的讲解);或者把源程序拷贝到tc目录下运行。 #include #include #include #include #include /*定义一些常数*/ #define NO 0 #define YES 1 #define NONE -1 #define MAX_MENU 7/*根据情况改变可以在菜单显示的最大项*/ /*全局参数*/ int X,Y; int Selection; int button,x,y; void *p; size_t area; /*菜单结构*/ struct MENU { /*左上角*/ int x; int y; /*右下角*/ int x1; int y1; unsigned char Active[MAX_MENU];/* 菜单项是否激活的标志*/ char *head;/* 菜单的名字(可选项)*/ }; int MouseOn(struct MENU *t); void Process(); void Xorbar(int sx,int sy,int ex,int ey,int c); void Show(); void Hide(); void Status(); /* 通过下面的参数用户可以改变按钮的位置。*/ struct MENU File={200,110,250,130}; struct MENU Edit={295,110,345,130}; struct MENU Help={390,110,440,130}; struct MENU Close={600,10,620,30}; struct MENU Neeraj={380,300,460,315}; void main() { int gd = DETECT,gm; 1 /*初始化图形界面*/ initgraph(&gd, &gm,""); Selection=NONE; /*是否激活菜单项,YES 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示激活;NO表示取消激活*/ for(gd=0;gdx+15,tm->y+4,txt); } /*高亮显示函数*/ Hlight(struct MENU *t) { /* 高亮 */ winp(t,0); /* 显示菜单项名称 */ Msg(t->head); /*在没有输入的情况下,一直高亮*/ while(MouseOn(t)) { Status(); if(button!=0) break; if(kbhit()) break; } /*消除高亮*/ setcolor(7); Hide(); rectangle(t->x,t->y,t->x1,t->y1); Msg(""); /*重绘*/ Show(); } int MouseOn(struct MENU *t) { int flag; flag=0; if(x>=t->x && x<=t->x1 && y>=t->y && y<=t->y1) flag=1; return flag; } void Xorbar(int sx,int sy,int ex,int ey,int c) { int i; setwritemode(1); setcolor(c); Hide(); for(i=sy;i<=ey;i++) line(sx,i,ex,i); Show(); setwritemode(0); } Push(struct MENU *tm) { winp(tm,1); while(button==1) { Status(); if(kbhit()) break; } } Up(struct MENU *tm) { setcolor(7); Hide(); rectangle(tm->x,tm->y,tm->x1,tm->y1); Show(); while(button==1) { Status(); if(kbhit()) break; } } /*弹出下拉菜单*/ PullMenuDown(char *H[],int n,struct MENU *tm) { int i; i=n*20; /* 保存背景*/ Push(tm); /* 隐藏鼠标光标*/ Hide(); /* 把菜单项位图读入内存,以供收回弹出项时重新绘制*/ getimage(tm->x+1,tm->y1+2,tm->x+100,tm->y1+i+5,p); /* 重新设置这块区域*/ Win(tm->x+1,tm->y1+2,tm->x+100,tm->y1+i+5); setcolor(0); settextstyle(2,0,4); /*弹出下拉菜单项*/ for(i=0;iActive[i]) { setcolor(15); outtextxy(tm->x+15,tm->y1+9+i*20,H[i]); setcolor(0); outtextxy(tm->x+14,tm->y1+8+i*20,H[i]); } else outtextxy(tm->x+14,tm->y1+8+i*20,H[i]); } /*显示鼠标光标*/ Show(); while(button==1) Status(); HandleMenu(n,tm); } PullMenuUp(int n,struct MENU *tm) { int i; /*隐藏鼠标光标*/ Hide(); /* 把读入内容的原菜单项位图重新绘制出来*/ putimage(tm->x+1,tm->y1+2,p,COPY_PUT); /*显示鼠标光标*/ Show(); Up(tm); } /* 处理菜单项命令函数 */ HandleMenu(int n,struct MENU *tm) { int i; char Key; setcolor(0); Selection=NONE; i=0; while(1) { Status(); if(button==1) break; for(i=0;ix+4,tm->y1+6+i*20,tm->x+97,tm->y1+22+i*20)) { Xorbar(tm->x+3,tm->y1+6+i*20,tm->x+97,tm->y1+22+i*20,14); while(MouseOn1(tm->x+4,tm->y1+6+i*20,tm->x+97,tm->y1+22+i*20)) { Status(); if(button==1) { if(tm->Active[i]==YES) { Selection=i; break; } else Selection=NONE; } if(kbhit()) break; } Xorbar(tm->x+3,tm->y1+6+i*20,tm->x+97,tm->y1+22+i*20,14); } } } PullMenuUp(n,tm); } MouseOn1(int cx,int cy,int cx1,int cy1) { int flag; flag=0; if(x>=cx && x<=cx1 && y>=cy && y<=cy1) flag=1; return flag; } /* Mouse & win routines */ union REGS i,o; struct SREGS ss; /* 显示鼠标光标函数 */ void Show() { i.x.ax=1; int86(0x33,&i,&o); } /* 隐藏鼠标光标函数*/ void Hide() { i.x.ax=2; int86(0x33,&i,&o); } /* 获得鼠标状态函数 */ void Status() { i.x.ax=3; int86(0x33,&i,&o); button=o.x.bx; x=o.x.cx; y=o.x.dx; } /*绘制菜单项的背景和边框*/ winp(struct MENU *t,int state) { Hide(); /*非高亮模式*/ if(state==1) { /*两条暗边框线*/ setcolor(0); line(t->x,t->y,t->x,t->y1); line(t->x,t->y,t->x1,t->y); /*两条亮边框线*/ setcolor(15); line(t->x1,t->y,t->x1,t->y1); line(t->x,t->y1,t->x1,t->y1); } /*高亮模式*/ else { /*两条亮边框线*/ setcolor(15); line(t->x,t->y,t->x,t->y1); line(t->x,t->y,t->x1,t->y); /*两条暗边框线*/ setcolor(0); line(t->x1,t->y,t->x1,t->y1); line(t->x,t->y1,t->x1,t->y1); } Show(); } /*绘制一个矩形区域*/ Win(int sx,int sy,int ex,int ey) { Hide(); /*设置填充的颜色*/ setfillstyle(1,7); /*绘制一个区域*/ bar(sx,sy,ex,ey); /*两条亮边框线*/ setcolor(15); line(sx,sy,sx,ey); line(sx,sy,ex,sy); /*两条暗边框线*/ setcolor(0); line(ex,sy,ex,ey); line(sx,ey,ex,ey); Show(); } Msg(char *m) { int l; setcolor(14); rectangle(18,438,622,477); setfillstyle(1,0); bar(20,440,620,475); if(MouseOn(&Neeraj)) { settextstyle(2,0,7); setcolor(11); l=textwidth(m)/2; outtextxy(320-l,440,m); } else { settextstyle(2,0,8); setcolor(15); l=textwidth(m)/2; outtextxy(320-l,440,m); outtextxy(321-l,441,m); } } Comments() { setfillstyle(1,0); bar(140,5,500,40); setcolor(14); rectangle(140,5,500,40); settextstyle(2,0,8); setcolor(15); outtextxy(260,10,"GUI-MENUS"); setfillstyle(1,8); bar(140,150,502,402); setcolor(14); rectangle(138,148,502,402); Msg("Welcome !"); settextstyle(2,0,5); setcolor(10); outtextxy(158,180,"Hello Friends !"); settextstyle(2,0,4); outtextxy(260,200,"Here i am with my menu program."); outtextxy(158,220,"As you can see it's like windows menu,you can"); outtextxy(158,240,"add more menus to it. It's just a concept for"); outtextxy(158,260,"building more menus. I hope you will like my effort,"); outtextxy(158,280,"email me at : n21@indiatimes.com"); setcolor(14); outtextxy(370,300,"- Neeraj Sharma"); line(380,304+textheight("A"),380+textwidth("Neeraj Sharma"),304+textheight("A")); } End() { int i,j; setcolor(0); Hide(); for(j=0;j<40;j++) { for(i=0;i<481;i+=20) line(0,0+i+j,640,j+0+i); delay(100); if(kbhit()) if(getch()==27) break; } settextstyle(2,0,5); setcolor(15); outtextxy(220,180,"Thanks for being with us !"); Show(); delay(3000); }c语言课程设计_菜单设计,菜单设计
本文档为【c语言课程设计_菜单设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_963767
暂无简介~
格式:doc
大小:49KB
软件:Word
页数:28
分类:工学
上传时间:2019-01-19
浏览量:48