/* ESTE PROGRAMA GENERA UN MENU DE 3 OPCIONES, DONDE LAS OPCIONES SON SELECCIONADAS POR LOS CURSORES Y LA TECLA ENTER*/ #include #include #include /* PROTOTIPOS DE LAS FUNCIONES UTILIZADAS */ void impri(int,char[],int,int);/*IMPRIME LAS OPCIONES DEL MENU int,COLOR DE IMPRESION, cha[],CADENA A IMPRIMIR, int, COLUMNA, int, FILA*/ void cursor(char[3][10],int,int,int);/* MANEHO DE LOS CURSORES Y SELECION DE OPCION, char[3][10],MATRIZ DE CADENAS int,COLUMNA, int,FILA int,INDICE PARA LA MATRIZ*/ void main() { _setcursortype(_NOCURSOR);/*FUNCION QUE NOS PERMITE OCULTAR EL CURSOR EN PANTALLA SUS POSIBLES VALORES SON: _NOCURSOR: EL CURSOR NO APARECE VALOR 0 _SOLIDCURSOR: EL CURSOR APARECE GRUESO VALOR 1 _NORMALCURSOR: NORMAL CURSOR VALOR 2 _setcursortype(int) se encuentra en conio.h en dicha libreria estan definidas las constantes _NOCURSOR,_SOLIDCURSOR Y _NORMALCURSOR*/ int sw=0,color,c,f,col,fil, indice; char cad[3][10]={"PRIMERA","SEGUNDA","SALIR"};/* MATRIZ DE CADENAS, CON LAS OPCIONES DEL MENU*/ clrscr(); color=7; impri(color,cad[0],30,10); impri(color,cad[1],30,12); impri(color,cad[2],30,14); col=30; fil=10; indice=0; while(sw==0) { cursor(cad,col,fil,indice); if(wherey()==10) { col=30; fil=10; gotoxy(20,24); textcolor(142); cprintf("OPCION PRIMERA"); textcolor(14); cprintf("\t PULSE UNA TECLA PARA VOLVER AL MENU"); textcolor(7); getch(); gotoxy(20,24); printf(" "); indice=0; } else if(wherey()==12) { col=30; fil=12; gotoxy(20,24); textcolor(142); cprintf("OPCION SEGUNDA"); textcolor(14); cprintf("\t PULSE UNA TECLA PARA VOLVER AL MENU"); textcolor(7); gotoxy(20,24); getch(); printf(" "); indice=1; } else { col=30; fil=14; gotoxy(20,24); textcolor(142); printf("SALIR"); textcolor(14); cprintf("\t PULSE UNA TECLA PARA VOLVER AL MENU"); textcolor(7); sw=1; getch(); gotoxy(20,24); printf(" "); indice=2; } } _setcursortype(_NORMALCURSOR); } //DESARROLLO DE LAS FUNCIONES void impri(int color, char cad[],int c,int f) { textcolor(color); gotoxy(c,f); cprintf("OPCION %s",cad); } void cursor(char cad[3][10],int c,int f,int indice) { int sw=0,i,a; gotoxy(c,f); impri(14,cad[indice],c,f); while(sw==0) { i=getche(); if(i==0) { a=getch(); switch(a) { case 72: { gotoxy(c,f); impri(7,cad[indice],c,f); if(f==10) f=14; else f=f-2; gotoxy(c,f); if(indice==0) indice=2; else indice--; impri(14,cad[indice],c,f); break; } case 80: { gotoxy(c,f); impri(7,cad[indice],c,f); if(f==14) f=10; else f=f+2; gotoxy(c,f); if(indice==2) indice=0; else indice++; impri(14,cad[indice],c,f); break; } } } else if(i==13) sw=1; } }