⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 例2-7.c

📁 c语言编程实例,c语言高级编程
💻 C
字号:
/* Note:Your choice is C IDE */
#include <stdio.h>      
#include <stdlib.h>       
#include <process.h>        
#include <dos.h>              
#include <conio.h>              
/* define Keys scan code */           /* 定义各键的扫描码 */


#define Key_DOWN  80
#define Key_UP    72
#define Key_ESC   1  
#define Key_ALT_F 33
#define Key_ALT_X 45    
#define Key_ENTER 28

int get_key(); 
void box(int startx,int starty,int high,int width);

void main()
{  
	int i,key,x,y,l;
	char *menu[]={"File","Edit","Run","Option","Help","Setup","Zoom","Menu"};
	/* 主菜单各项 */
	char *red[]={"F","E","R","O","H","S","Z","M"};
	char *f[]={"Load file",
				"Save file",
				"Print",
				"Modify",
				"Quit Alt_x"};
	char buf[16*10*2],buf1[16*2];	
	textbackground(1);
	clrscr();  
	/* textmode(C80); */
	window(1,1,80,2);
	for(i=0,l=0;i<8;i++)
	{
		x=wherex();
		y=wherey();
		cprintf("%s",menu[i]);
		l=strlen(menu[i]);
		gotoxy(x,y);
		textcolor(RED); 
		cprintf("%s",red[i]);
		x=x+l+4;
		gotoxy(x,y);
		textcolor(BLACK); 
	} 
	while(1)
	{
		key=0;
		while(bioskey(1)==0);
		key=get_key();
		if(key==Key_ALT_X)
			exit(0); 
		if(key==Key_ALT_F)  
		{
			textbackground(0);
			textcolor(15);
		    gotoxy(4,1);
			cprintf("%s",menu[0]); 
			gettext(4,2,19,12,buf);
			window(4,2,19,8);
			textbackground(15);
			textcolor(0);
		    clrscr(); 
			window(4,2,19,9);
			box(1,1,7,16);   
			for(i=2;i<7;i++)
			{
				gotoxy(2,i);
				cprintf("%s",f[i-2]);
			}
			gettext(2,2,18,3,buf);
			textbackground(0);
			textcolor(15);
			gotoxy(2,2);
			cprintf("%s",f[0]);
			y=2;
			key=get_key();
			while(key!=Key_ALT_X&Key_ENTER&&key!=Key_ESC)
			{
				if(key==Key_UP||key==Key_DOWN)
				{
					puttext(2,y,18,y+1,buf1);
					if(key=Key_UP)
						y=y==2?6:y-1;
					if(key=Key_DOWN)
						y=y==6?2:y+1;
					gettext(2,y,18,y+1,buf1);
					textbackground(0);
					textcolor(15);
					gotoxy(2,y);
					cprintf("%s",f[y-2]); 
				} 
				key=get_key();
			}
			if(key==Key_ALT_X)
				exit(0); 
			if(key==Key_ENTER)
			{
				switch(y-1)
				{
					case 1:
						/* Load file */
						break; 
					case 2:
						/* Save file */
						break; 
					case 3:
						/* print */
						break; 
					case 4:
						/* modify */
						break; 
					case 5:exit(0);
						break;    
					default: 
						break;
				}
			}
			else
			{
				window(1,1,80,2);
				puttext(4,2,19,12,buf);
				textbackground(15);
				textcolor(0);
				gotoxy(4,1);
				cprintf("%s",menu[0]); 
			}
		}
	}
}

int get_key()
{
	union REGS rg;
	rg.h.ah=0;
	int86(0x16,&rg,&rg);
	return rg.h.ah;
}
 
void box(int startx,int starty,int high,int width)
{
	int i;
	gotoxy(startx,starty);
	putch(0xda);
	for(i=startx+1;i<width;i++)
		putch(0xc4);
	putch(0xbf);
	for(i=starty+1;i<high;i++)
	{
		gotoxy(startx,i);
		putch(0xb3);
		gotoxy(width,i);
		putch(0xb3); 
	}
	gotoxy(startx+1,width);
	putch(0xc0);
	for(i=startx+1;i<width;i++)
		putch(0xc4);
	putch(0xd9);
	return;
}
						  
					
					
					
		

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -