reebr 94 Denunciar post Postado Outubro 26, 2012 Oi, Estou criando um programinha em que o usuário possa Agendar e verificar disponibilidade de equipamentos (equipamentos de escola, exemplo: datashow, etc). Estou usando a biblioteca 'conio2.h' para fazer o MENU PRINCIPAL. Através das teclas CIMA, BAIXO e ENTER o usuário pode escolher qual opção ele deseja (AGENDAR, PERQUISAR EQUIPAMENTO, SAIR). Acontece que, ao pressionar a tecla BAIXO duas vezes nenhum comando é executado, ele deveria ir para a opção SAIR, porém fica parada na segunda opção (obs: apertando uma vez apenas, funciona normalmente e a escolhe a segunda opção). Não colocarei o código todo, e sim somente a parte que estou com problemas: #include <stdio.h> #include <stdlib.h> #include <conio2.h> #define CIMA 72 #define BAIXO 80 #define ENTER 13 #define ESC 27 char key, key2, key3; int opc; void MenuPrincipal(void) { //menu FIXO gotoxy(3 ,6); textcolor(9); printf("C O N T R O L E D E E Q U I P A M E N T O S"); gotoxy(1 ,6); textbackground(25); printf(" "); gotoxy(53,6); textbackground(25); printf(" "); gotoxy(1,20); textbackground(25); printf(" "); } int MenuOpcao() { //menu de escolhas do { gotoxy(22,10); textcolor(9); textbackground(15); printf("Agendar Equipamento"); gotoxy(22,12); textcolor(9); textbackground(0); printf("Checar disponibilidade de Equipamento"); gotoxy(22,14); textcolor(9); textbackground(0); printf("Sair"); key = getch(); if(key == BAIXO) { system("CLS"); MenuPrincipal(); gotoxy(22,10); textcolor(9); textbackground(0); printf("Agendar Equipamento"); gotoxy(22,12); textcolor(9); textbackground(15); printf("Checar disponibilidade de Equipamento"); gotoxy(22,14); textcolor(9); textbackground(0); printf("Sair"); key = getch(); if(key == BAIXO) //AQUI ESTÁ O PROBLEMA, NÃO DESCE PARA A OPÇÃO "SAIR" { system("CLS"); MenuPrincipal(); gotoxy(22,10); textcolor(9); textbackground(0); printf("Agendar Equipamento"); gotoxy(22,12); textcolor(9); textbackground(0); printf("Checar disponibilidade de Equipamento"); gotoxy(22,14); textcolor(9); textbackground(15); //deveria ficar selecionada essa opção printf("Sair"); key = getch(); } // BLA BLA } else if(key == CIMA) { // BLA BLA BLA } }while(key != ESC); } main() { MenuPrincipal(); MenuOpcao(); } OBS: Esse código todo não faz absolutamente NADA, é apenas o "menu" do programa. Ele fica parado aqui: Como eu faço para, ao apertar BAIXO 2 vezes, a seleção ir para o "SAIR" ? O código está aparentemente certo :pinch: Compartilhar este post Link para o post Compartilhar em outros sites
string.h 0 Denunciar post Postado Outubro 28, 2012 acho ki vosce tem que faze outro progama mano :thumbsup: Compartilhar este post Link para o post Compartilhar em outros sites
reebr 94 Denunciar post Postado Outubro 29, 2012 acho ki vosce tem que faze outro progama mano :thumbsup: Ta de brincadeira? Enfim, consegui fazer a seta se mover, mas não estou conseguindo ler a opção escolhida. #include <stdio.h> #include <stdlib.h> #include <conio2.h> #include <windows.h> #define CIMA 72 #define BAIXO 80 #define ENTER 13 #define ESC 27 int posicao = 10, aux, tecla; //############################################################################# void MenuFixo(void) { gotoxy(3 ,6); textcolor(9); printf("C O N T R O L E D E E Q U I P A M E N T O S"); gotoxy(1 ,6); textbackground(25); printf(" "); gotoxy(53,6); textbackground(25); printf(" "); gotoxy(1,20); textbackground(25); printf(" "); } //############################################################################# int MenuOpcao() { //menu de escolhas do { system("CLS"); MenuFixo(); gotoxy(22,10); textcolor(9); textbackground(0); printf(" Agendar Equipamento "); gotoxy(22,12); textcolor(9); textbackground(0); printf("Checar disponibilidade de Equipamento"); gotoxy(22,14); textcolor(9); textbackground(0); printf(" Sair "); //seta de opção textcolor(3); gotoxy(18,posicao);printf("%c%c",16,16); gotoxy(62,posicao);printf("%c%c",17,17); tecla = getch(); if(tecla == BAIXO) { posicao = posicao + 2; if(posicao == 16) posicao = 10; } if(tecla == CIMA) { posicao = posicao - 2; if(posicao < 10) posicao = 14; } }while(tecla != ENTER); return posicao; } //############################################################################# main() { //ocultar cursor HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); CONSOLE_CURSOR_INFO CursoInfo; CursoInfo.dwSize = 1; CursoInfo.bVisible = false; SetConsoleCursorInfo(hConsole, &CursoInfo); MenuOpcao(); switch(posicao) { case 14: MessageBox(NULL, "oi", "oi", MB_OK); break; } } Criei um "switch" e um case só pra testar, não funcionou. Ao apertar ENTER estando na posição 14 o programa é fechado :upset: Compartilhar este post Link para o post Compartilhar em outros sites
reebr 94 Denunciar post Postado Outubro 29, 2012 Já consegui, pode fechar o tópico :rolleyes: Compartilhar este post Link para o post Compartilhar em outros sites