Advertisement
auladecomputacao

menumovel

Oct 17th, 2018
851
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.74 KB | None | 0 0
  1. /*
  2. Função: Menu controlado pelas setas direcionais do teclado
  3. Autor: Guilherme Bezerra Fernandes
  4. Data: 17/10/2018
  5. */
  6.  
  7. #include <stdio.h>
  8. #include <stdlib.h>
  9. #include <windows.h>
  10.  
  11. char a;
  12. short posX = 30, posY = 5;
  13.  
  14. void moveXY(int x, int y, char t[10])
  15. {
  16.     HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
  17.     COORD position = {x,y};
  18.     SetConsoleCursorPosition(hStdout, position);
  19.     printf("%s", t);   
  20. }
  21.  
  22. void menu()
  23. {
  24.     moveXY(32,1, "::: MENU MOVEL :::");
  25.     moveXY(33,5,"1- Cadastro");
  26.     moveXY(33,10,"2- Relatorio");
  27.     moveXY(33,15,"1- Sair");
  28. }
  29.  
  30. int main()
  31. {
  32.     system("color 4F");
  33.     moveXY(30,5, "->");
  34.     do
  35.     {      
  36.         menu();
  37.         moveXY(posX, posY, "->");
  38.         a = toupper(getch());
  39.            
  40.         switch(a)
  41.         {
  42.             case 'H':
  43.                 if (posY > 5)
  44.                 {
  45.                     moveXY(30,posY, "  ");
  46.                     posY-=5;
  47.                     moveXY(30,posY, "->");             
  48.                     _beep(400,100);
  49.                 }
  50.             break;
  51.            
  52.             case 'P':
  53.                 if (posY < 15)
  54.                 {
  55.                     moveXY(30,posY, "  ");
  56.                     posY+=5;
  57.                     moveXY(30,posY, "->");             
  58.                     _beep(500,100);
  59.                 }
  60.             break;
  61.            
  62.             case 13:  //pressionou enter
  63.                 if (posY == 5)    //cadastrando...
  64.                 {
  65.                     system("cls");
  66.                     moveXY(30,1, ":::::::::CADASTRO:::::::::: ");
  67.                     system("color 2F");
  68.                     _beep(400,2000);
  69.                     system("cls");
  70.                 }
  71.                
  72.                 if (posY == 10)    //relatorio
  73.                 {
  74.                     system("cls");
  75.                     moveXY(30,1, ":::::::::RELATORIO:::::::::: ");
  76.                     system("color 3F");
  77.                     _beep(500,2000);
  78.                     system("cls");
  79.                 }
  80.                
  81.                 if (posY == 15)
  82.                 {
  83.                     system("cls");
  84.                     exit(0);
  85.                  }
  86.             break;
  87.         }
  88.    
  89.     }while(1);
  90.    
  91.     system("pause");
  92.     return 0;
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement