Schriftgröße/Art der Konsole ändern?



  • Hab ich gemacht:

    C:\Users\Yannik\Desktop\C++\programme\Neu\all.cpp|8573|warning: "_WIN32_WINNT" redefined|
    c:\mingw\bin\..\lib\gcc\mingw32\4.3.3\..\..\..\..\include\windef.h|20|warning: this is the location of the previous definition|
    C:\Users\Yannik\Desktop\C++\programme\Neu\all.cpp|8575|error: 'PCONSOLE_FONT_INFOEX' does not name a type|
    C:\Users\Yannik\Desktop\C++\programme\Neu\all.cpp||In function 'int main()':|
    C:\Users\Yannik\Desktop\C++\programme\Neu\all.cpp|8580|error: 'testFont' was not declared in this scope|
    C:\Users\Yannik\Desktop\C++\programme\Neu\all.cpp|8583|error: 'SetCurrentConsoleFontEx' was not declared in this scope|
    ||=== Build finished: 3 errors, 2 warnings ===|

    Und noch mal zum Verständnis, windef.h Zeile 20:

    #ifndef WINVER
    #define WINVER 0x0400
    /*
     * If you need Win32 API features newer the Win95 and WinNT then you must
     * define WINVER before including windows.h or any other method of including
     * the windef.h header.
     */
    #endif
    #ifndef _WIN32_WINNT
    #define _WIN32_WINNT WINVER
    

    Ich habs dann in der Header nochmal auf 0x601 gesetzt, immer noch Fehler von wegen not declared.

    😕



  • Incocnito schrieb:

    Ich habs dann in der Header nochmal auf 0x601 gesetzt, immer noch Fehler von wegen not declared.

    😕

    Nee! Nie in Windows-Headern was ändern! Ich meinte eigentlich, dass du die Zeile ganz oben hin setzt, noch vor dem Einbinden von windows.h. Dann sollte eigentlich keine Warnung von wegen Redefinition kommen. Ob's jetzt was bringt, weiß ich nicht. War mehr geraten, aber probier mal.



  • Jo, kommt jetzt (logischerweise) keine Warnung wegen redifinition mehr, geht trotzdem nicht (not declared).
    Und das abändern war eben nur so, mach ich sonst eh nicht^^

    Sonst noch irgendeine Idee? Vielleicht gibts ja noch eine andere Funktion/Möglichkeit?



  • Wär die IC nicht was für dich?

    http://www.c-plusplus.net/code/ic/



  • Ich hab die schon durchforstet, da steht nix von wegen Schriftgröße.
    Alles was da steht konnte ich bereits ergoogeln, aber diese blöde Schriftgröße will einfach nicht 😞
    Oder hab ich da was übersehen?

    * Get/Set für Farben (Textfarbe und Hintergrundfarbe - getrennt oder gemeinsam) [Conio-Äquivalente: textcolor()/bgcolor()]
    * Get/Set für Cursor (Position und Größe) [Conio-Äquivalent: gotoxy()]
    * Get/Set für Fenster (Position und Größe)
    * Get für maximale Fenstergröße
    * Get/Set für Fenstertitel

    Da steht nichts von wegen Schriftgröße 😞



  • Ok, sorry. Ich weiß gar nicht genau, was die IC alles kann. Ich dachte, die würde sowas vielleicht mit abdecken. Mir gehen langsam die Ideen aus... 😉



  • Hilfts weiter, wenn ich sage, dass ich bereits schon alles vor ein paar Wochen ausprobiert hab was wir gerade getestet haben? 😃
    Ich hab gegoogelt und weitergesucht, nirgends was gefunden. Tja, dann gibt's wohl einfach keine Lösungen 🙄
    Schon schade eigentlich.. Wenn man sich da diese Konsolenfunktionsliste ansieht, gibt's echt für jeden Kram eine Funktion, nur für die Schriftgröße nicht?
    Das ist eigentlich schon recht komisch.. Ich glaube, wir übersehen da irgendwas 😮

    Trotzdem danke für die Hilfe^^





  • Oh, cool!
    Der hatte ja die selben Probleme wie wir^^
    Aber ich hab jetzt Null Ahnung, wie man diese Funktionen jetzt benutzt (da steht ja was von wegen static void main und var fonts) und von winAPI hab ich eigentlich keinen Schimmer, ich bin froh wenn das kopierte funktioniert.
    Und außerdem wird da ja auch nicht gezeigt, wie man das wichtigste, nämlich die Schriftgröße, abändert. Findest du dazu auch noch was? Ich nicht 😃
    Und wenn ja, wie benutzt man das dann?



  • Hm, dann kann man die wohl einfach nicht ändern. Das ist Schade.. naja, egal.



  • Schau dir mal die IDE Quincy an und da die Beispiele:
    http://www.codecutter.net/tools/quincy/

    Hab es nicht probiert, denke aber das man da auch einen neueren Compiler darunter bekommt - im Zweifel gibt es da den Quelltext 💡

    MfG f.-th.



  • Was soll ich denn da probieren? Das mit conio2 oder was?



  • Falls wer die Lösung will, braucht man doch nur schritt für schritt denken.

    Alle Aufrufe den Rückgabewert prüfen, und schon fällt einen auf, das schon der GET Aufruf nicht funzt. Mal schnell hier:
    http://msdn.microsoft.com/en-us/library/ms683177%28VS.85%29.aspx
    geschaut, und schon sieht man unten die Notiz:

    This function needs the cbSize element of the CONSOLE_FONT_INFOEX structure defined (not a surprise but not mentioned in the dcumentation) otherwise it returns an error

    Also Leute, hier der Code:

    HANDLE outcon = GetStdHandle(STD_OUTPUT_HANDLE);
    
        CONSOLE_FONT_INFOEX font;
        font.cbSize=sizeof(CONSOLE_FONT_INFOEX);
        GetCurrentConsoleFontEx(outcon, false, &font);
        font.dwFontSize.X = 4;
        font.dwFontSize.Y = 4;
        SetCurrentConsoleFontEx(outcon, false, &font);
    

    War das jetzt so schwer?

    Euer genervter Gott



  • Hier mal eine Variante für ein wenig ältere Systeme:
    http://www.c-plusplus.net/forum/p761155
    Auf W2k funktioniert der Code, Microsoft schreibt in der MSDN ab XP und in den Code-Guards Win 5.00 😃

    Der Code vom genervten ... läuft z.B. noch nicht auf meinem gcc 4.4.1 -
    Microsoft funktioniert natürlich laut MSDN ab Vista.

    MfG f.-th.



  • Ja, so hats funktioniert wie es da steht, danke!



  • Sorry, anscheinend funktioniert mein Code nicht beim GCC der sich brav an den Standard hält^^

    Hab Visual Studio 2010, bei dem funzts.

    MFG



  • Microsoft hat es da ja einfach - es ist der Standard bezüglich Windows, da es ja keine Alternative gibt.

    Aber schaut euch mal VS und C im MSDN an und da die Neuerungen und die veralteten Funktionen, ist das C oder soll da etwas neben C kreiert werden? Vor allem bezüglich der 2010er Version kann man da einiges Lesen.

    b.t.w.: Ein Gott neben Microsoft - ist das nicht schon Vielgötterei 😕 🤡

    MfG f.-th.



  • Der Code von Genervter_Gott ist unter XP inkompatibel, da die Funktion
    GetCurrentConsoleFontEx() erst ab Windows Vista existiert. Das gilt auch
    für VisualStudio ...

    Die undokumentierte Funktion SetConsoleFont() aus der kernel32.dll
    funktioniert mit Windows XP und VS2010 und sollte auch mit anderen
    Compilern nutzbar sein. Der Name der Aufrufkonvention könnte aber
    variieren. Bei Microsoft heisst es aktuell WINAPI ...

    Bei mir läuft das hier unter XP mit VS2010

    http://www.c-plusplus.net/forum/quote760701

    Etwas eleganter auch das (läuft mit VS)

    http://cboard.cprogramming.com/windows-programming/102187-console-font-size-2.html


Anmelden zum Antworten