148 lines
3.3 KiB
C++
148 lines
3.3 KiB
C++
/* ESTE PROGRAMA GENERA UN MENU DE 3 OPCIONES, DONDE LAS OPCIONES SON
|
|
SELECCIONADAS POR LOS CURSORES Y LA TECLA ENTER*/
|
|
|
|
#include <stdio.h>
|
|
#include <conio.h>
|
|
#include <string.h>
|
|
/* 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;
|
|
}
|
|
} |