Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Jak zwiększyś rozmiar czczionki i wyśrodkować menu w konsoli?

Ostatnio zmodyfikowano 2015-10-24 22:57
Autor Wiadomość
Asahel
Temat założony przez niniejszego użytkownika
Jak zwiększyś rozmiar czczionki i wyśrodkować menu w konsoli?
» 2015-10-24 12:45:53
Powiedzmy, że mam coś takiego:

http://zapodaj.net​/0e6cd1b75760c.png.html

Chciałbym, stworzyć ładne menu dla mojego programu. Przydałoby się powiększyć napisy i wyśrodkować "menu".

A tutaj kod mojego menu:

C/C++
// Scrolling menu tutorial WITHOUT ANY EXTRA HEADER FILES!

#include <iostream>
#include <string>
#include <windows.h>

using namespace std;

int main()
{
    string Menu[ 3 ] = { "Start Game", "Options", "Exit" };
    int pointer = 0;
   
    while( true )
    {
        system( "cls" );
       
        SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), 2 );
        cout << "Main Menu\n\n";
       
        for( int i = 0; i < 3; ++i )
        {
            if( i == pointer )
            {
                SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), 11 );
                cout << Menu[ i ] << endl;
            }
            else
            {
                SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), 15 );
                cout << Menu[ i ] << endl;
            }
        }
       
        while( true )
        {
            if( GetAsyncKeyState( VK_UP ) != 0 )
            {
                pointer -= 1;
                if( pointer == - 1 )
                {
                    pointer = 2;
                }
                break;
            }
            else if( GetAsyncKeyState( VK_DOWN ) != 0 )
            {
                pointer += 1;
                if( pointer == 3 )
                {
                    pointer = 0;
                }
                break;
            }
            else if( GetAsyncKeyState( VK_RETURN ) != 0 )
            {
                switch( pointer )
                {
                case 0:
                    {
                        system( "cls" );
                        cout << "\n\n\nStarting new game...";
                        Sleep( 1000 );
                    } break;
                case 1:
                    {
                        cout << "\n\n\nThis is the options...";
                        Sleep( 1000 );
                    } break;
                case 2:
                    {
                        return 0;
                    } break;
                }
                break;
            }
        }
       
        Sleep( 150 );
    }
   
    return 0;
}
P-139098
DejaVu
» 2015-10-24 15:17:50
To nie tryb graficzny. Jak chcesz mieć większe/inne czcionki to użyj biblioteki graficznej. Wyśrodkowanie napisów to pojęcie względne, ponieważ:
- szerokość i wysokość konsoli jest zmienna (więc trzeba ją odczytywać)
- nie ma standardowego rozwiązania wieloplatformowego (czyli: albo musisz użyć biblioteki ncurses albo wywoływać funkcje typowe dla konkretnego systemu)

Jeżeli chcesz robić interaktywne aplikacje w konsoli to proponuję Ci abyś poczytał » KursyKurs New Curses, C++ kurs.
P-139105
Asahel
Temat założony przez niniejszego użytkownika
brak
» 2015-10-24 16:57:07
Rozumiem. Kolejny problem to jak rozplanować to całe menu. To znaczy: menu opcje prowadzi do podmenu. Bez sensu byłoby za każdym razem powielać to co napisałem u góry. Właściwie chciałem stworzyć klasę Menu i klasę opcję. Klasa opcje dziedziczyłaby bo klasie menu funkcję wyświetl i właściwie tylko po to by była. To co jest u góry to właściwie treść całej funkcji wyświetl Poza dwiema linijkami kodu. Jak dostosować tą funkcję do ogólnego przypadku? Jak w ogóle zorganizować to całe menu? Jakieś sugestie?
P-139110
DejaVu
» 2015-10-24 22:57:57
Jeden temat = jeden problem.
P-139127
« 1 »
  Strona 1 z 1