Loading:


    Podświetlane menu konsolowe z obsługą strzałek

    Proste menu konsolowe w C++ oparte on WinAPI. Program w pętli pobiera znak z klawiatury i w zależności od aktualnej wartości zmiennej "pozycja" podświetla wybraną pozycję menu. Po wybraniu odpowiedniej pozycji i zatwierdzeniu enterem wywołuje przypisaną funkcję dla danej pozycji. Działa także dla wyboru liczbowego, tj. kiedy użytkownik kliknie cyfrę z podanego przedziału, również uruchamiana jest pożądana funkcja. 

    Oczywiście musimy użyć biblioteki windowsowej:
    #include <windows.h>

    oraz zadeklarować zmienną globalną "pozycja" oraz przypisać jej wartość początkową, aby od razu po uruchomieniu programu podświetliła się np. pierwsza pozycja
    int pozycja =1; 



    Napisz Artyku³

    Listing

     char znak;
         do{
              if(znak == 72 && pozycja > 1) pozycja--;
              if(znak == 80 && pozycja < 9) pozycja++;
             
              system("cls");
              header();

              cout << " Wybierz zadanie do uruchomienia:" << endl;
             
              //pozycja 1
              SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),7);
              cout << " [1] ";
              if(pozycja == 1) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),240);
              cout << "Pozycja 1" << endl;
             
              //pozycja 2
              SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),7);
              cout << " [2] ";
              if(pozycja == 2) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),240);
              cout << "Pozycja 2" << endl;
             
              //pozycja 3
              SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),7);
              cout << " [3] ";
              if(pozycja == 3) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),240);
              cout << "Pozycja 3" << endl;
             
              //pozycja 4
              SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),7);
              cout << " [4] ";
              if(pozycja == 4) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),240);
              cout << "Pozycja 4" << endl;
             
              //pozycja 5
              SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),7);
              cout << " [5] ";
              if(pozycja == 5) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),240);
              cout << "Pozycja 5" << endl;
             
              //pozycja 6
              SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),7);
              cout << " [6] ";
              if(pozycja == 6) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),240);
              cout << "Pozycja 6" << endl;
             
              //pozycja 7
              SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),7);
              cout << " [7] ";
              if(pozycja == 7) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),240);
              cout << "Pozycja 7" << endl;
             
              //pozycja 8
              SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),7);
              cout << " [8] ";
              if(pozycja == 8) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),240);
              cout << "Pozycja 8" << endl;
              SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),7);
             
              cout << endl;
              //pozycja 9 (wyjście z programu)
              SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),7);
              cout << " [0] ";
              if(pozycja == 9) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),240);
              cout << "Wyjdz z programu" << endl;
              SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),7);
              znak=getch();  
         }
         while(znak != 72 && znak != 80 && znak != 13 && znak != 27 && znak < 48 && znak > 56) ;
         
         // wywoływanie odpowiedniej funkcji zadania po naciśnięciu klaiwsza enter
         if((pozycja == 1 && znak == 13) || znak == 49) f1();
         if((pozycja == 2 && znak == 13) || znak == 50) f2();
         if((pozycja == 3 && znak == 13) || znak == 51) f3();
         if((pozycja == 4 && znak == 13) || znak == 52) f4();
         if((pozycja == 5 && znak == 13) || znak == 53) f5();
         if((pozycja == 6 && znak == 13) || znak == 54) f6();
         if((pozycja == 7 && znak == 13) || znak == 55) f7();
         if((pozycja == 8 && znak == 13) || znak == 56) f8();
         
         if(znak == 27 || znak == 48 || (pozycja == 9 && znak == 13)) return 1; //jeżeli użytkownik nacisnie klawisz ESC zwróć 1




    Dodano przez: bari Ranga: 0 Punktów: 0
    Komentarze użytkowników
      • Tre¶æ komentarza
        Kod do komentarza (opcjonalnie)
        PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
        Autor
        Token
        token

         

         








    funkcje.net
    Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-2025 v.1.5 | design: diviXdesign & rainbowcolors