Forum MOJA PASJA - PROGRAMOWANIE Strona Główna
http://www.programuj.com
  WikiWiki  FAQFAQ    SzukajSzukaj    UżytkownicyUżytkownicy    GrupyGrupy   RejestracjaRejestracja 
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 




Rozmiar tekstu w konsoli


 
Napisz nowy temat   Odpowiedz do tematu    Forum MOJA PASJA - PROGRAMOWANIE Strona Główna -> C i C++
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
PoweredDragon



Dołączył: 12 Cze 2016
Posty: 4

Post Zacytuj zaznaczone Odpowiedz z cytatem OCEŃ POST
Witam. Zmagam się z pewnym problemem, mianowicie potrzebuję znaków mniej więcej jak poniżej, ale napisanych w konsoli. Wiem, że zmiana rozmiaru znaków w konsoli jest możliwa(btw. korzystam z code::blocksa), ale jestem nowy w te klocki i nie do końca rozumiem jak to działa(widziałem kilka gotowych funkcji, ale nie wyglądają jak typowe funkcje, z którymi do tej pory się zmagałem :c) Czy mógłby mi ktoś napisać (albo dokładnie wyjaśnić co po kolei wszystko znaczą poszczególne linijki i ich elementy) gotową funkcję do zmiany rozmiaru tekstu? (+ nazwy bibliotek)
Korzystam z Windows 10, na Code::Blocks

https://msdn.microsoft.com/en-us/library/ms686200

To pilne, więc proszę możliwie jak najszybciej.
Powrót do góry
Ogląda profil użytkownika Wyślij prywatną wiadomość
Albert Rosenfield
programista


Dołączył: 26 Kwi 2007
Posty: 2418
Skąd: olsztyn

Post Zacytuj zaznaczone Odpowiedz z cytatem OCEŃ POST
http://www.cplusplus.com/forum/general/118967/


ps. używaj wyszukiwarki.
Powrót do góry
Ogląda profil użytkownika Wyślij prywatną wiadomość
PoweredDragon



Dołączył: 12 Cze 2016
Posty: 4

Post Zacytuj zaznaczone Odpowiedz z cytatem OCEŃ POST
'SetCurrentConsoleFontEx' was not declared in this scope

Mam warunkowy header wincon.h, ale wyrzuca same błędy:
Wszystko to napisane capsem w tym wincon.h nie jest typem, a gdy sam windows.h wrzucę, to setfonta nie ma zadeklarowanego ;_;
ps. używam wyszukiwarki
Powrót do góry
Ogląda profil użytkownika Wyślij prywatną wiadomość
Albert Rosenfield
programista


Dołączył: 26 Kwi 2007
Posty: 2418
Skąd: olsztyn

Post Zacytuj zaznaczone Odpowiedz z cytatem OCEŃ POST
W opisie funkcji masz:
Cytat:
To compile an application that uses this function, define _WIN32_WINNT as 0x0500 or later.

W Project -> Build options -> Compiller settings -> #defines daj:
plain:
_WIN32_WINNT=0x0501
Powrót do góry
Ogląda profil użytkownika Wyślij prywatną wiadomość
PoweredDragon



Dołączył: 12 Cze 2016
Posty: 4

Post Zacytuj zaznaczone Odpowiedz z cytatem OCEŃ POST
To już było wpisane i nie to jest wynikiem błędu :/ Właśnie wszędzie widziałem coś, co u mnie jest zrobione i nie wiem co mam robić ;_;
Powrót do góry
Ogląda profil użytkownika Wyślij prywatną wiadomość
Albert Rosenfield
programista


Dołączył: 26 Kwi 2007
Posty: 2418
Skąd: olsztyn

Post Zacytuj zaznaczone Odpowiedz z cytatem OCEŃ POST
Dobra, już wiem, w czym problem. MinGW nie ma w nagłówkach funkcji SetCurrentConsoleFontEx i struktury CONSOLE_FONT_INFOEX. Takie niespodzianki są typowe dla tego kompilatora - czegoś brakuje, coś nie działa itp.

Rozwiązaniem jest zdefiniowanie struktury w aplikacji i załadowanie funkcji dynamicznie:
c++:
#ifdef __MINGW32__

typedef struct
{
    ULONG cbSize;
    DWORD nFont;
    COORD dwFontSize;
    UINT FontFamily;
    UINT FontWeight;
    WCHAR FaceName[ LF_FACESIZE ];
} CONSOLE_FONT_INFOEX, * PCONSOLE_FONT_INFOEX;


typedef WINBASEAPI BOOL( WINAPI * SetCurrentConsoleFontEx_type )( HANDLE, BOOL, PCONSOLE_FONT_INFOEX );

SetCurrentConsoleFontEx_type SetCurrentConsoleFontEx_loader()
{
    HMODULE kernel32 = LoadLibrary( TEXT( "Kernel32.dll" ) );
    if( !kernel32 ) return NULL;
    return ( SetCurrentConsoleFontEx_type ) GetProcAddress( kernel32, "SetCurrentConsoleFontEx" );
}


SetCurrentConsoleFontEx_type  SetCurrentConsoleFontEx = SetCurrentConsoleFontEx_loader();

#endif

void setFontSize(int FontSize)
{
    CONSOLE_FONT_INFOEX info = {0};
    info.cbSize       = sizeof(info);
    info.dwFontSize.Y = FontSize; // leave X as zero
    info.FontWeight   = FW_NORMAL;
    wcscpy(info.FaceName, L"Lucida Console");
    SetCurrentConsoleFontEx(GetStdHandle(STD_OUTPUT_HANDLE), NULL, &info);
}
Powrót do góry
Ogląda profil użytkownika Wyślij prywatną wiadomość
PoweredDragon



Dołączył: 12 Cze 2016
Posty: 4

Post Zacytuj zaznaczone Odpowiedz z cytatem OCEŃ POST
Działa! Wielkie dzięki, jesteś wielki! Very Happy
Powrót do góry
Ogląda profil użytkownika Wyślij prywatną wiadomość
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum MOJA PASJA - PROGRAMOWANIE Strona Główna -> C i C++ Wszystkie czasy w strefie CET (Europa)
Strona 1 z 1

 
Skocz do:  
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach


hosting sponsorowany przez hosted.pl
Powered by phpBB © 2001, 2002 phpBB Group