Improved Console 3.0



  • Weil ich nunmal C++ programmiere und nicht C :), wenn du von dem alles nichts wissen willst kannst du ja die "Shorties" benützen!

    #include <iostream>
    #include <ic.h>
    using namespace std;
    using namespace ic;
    using namespace ic::colors;
    using namespace ic::shorties;
    
    int main ()
    {
        gotoxy(10,10);
        textcolor(FG_RED);
        cout << "Hello World" << endl;
    
        return 0;
    }
    

    MfG SideWinder



  • Extra für alle C-Liebhaber noch eine Schnittstelle eingeführt:

    #include <iostream>
    #include <ic.h>
    using namespace std;
    
    int main ()
    {
        // Automatisches Benutzen von Shorties und Einbinden des colors-Namespace
        bgcolor(BG_RED);
        cout << "Hello World" << endl;
    
        return 0;
    }
    

    Die normale C++-Schnittstelle ist nun in der ic.hpp zu finden:

    #include <ic.hpp>
    

    Ein paar Bugfixes hab ich auch noch eingebaut, außerdem ein neues Shorty title(). Damit sind wir bei Version 3.2 und ich wünsche viel Spaß!

    MfG SideWinder



  • Es fehlt noch die programmgesteuerte Umschaltung in den Full Screen Modus und zurück.



  • Als Shorty oder überhaupt?

    if(!con.isFullscreen())
        con.fullscreen(true);
    
    if(con.isFullscreen())
        con.fullscreen(false)
    
    // bzw. im Compatible-Mode nur
    con.toggleFullscreen();
    

    MfG SideWinder



  • SideWinder schrieb:

    Als Shorty oder überhaupt?

    Überhaupt. Die keybd_events sind ein ziemlicher Hack. Das funktioniert nur, wenn die Anwendung den Fokus hat.



  • In der Tat aber derzeit nicht anders zu bewerkstelligen. Wenn du eine bessere Möglichkeit hast nur her damit 🙂

    Den Fokus zu holen sollte ja kein Problem sein.

    MfG SideWinder



  • Auch das Anpassen der Konsolengröße ist inzwischen ein Hack, der funktioniert jetzt dafür aber wenigstens im Gegensatz zu allen früheren Versionen.

    Der Konsolenpuffer darf nie unter die Größe des Fensterpuffers kommen. Das heißt, dass wenn das Fenster in x-Richtung größer und in y-Richtung kleiner gemacht werden soll sind 2 Operationen nötig. Ansonsten gilt es immer den richtigen Vorgang zuerst zu tun. Das erspar ich mir durch zeroSize(). Sooft wird die Größe ja sowieso nicht geändert.

    MfG SideWinder



  • #include <windows.h>
    #include <stdio.h>
    
    #ifdef __cplusplus 
    extern "C" 
    #endif 
       DWORD __stdcall SetConsoleDisplayMode (HANDLE, DWORD, PVOID); 
    
    int main() 
    { 
       DWORD val; 
       SetConsoleDisplayMode (GetStdHandle(STD_OUTPUT_HANDLE), 1, &val);    
       puts ("hello, full screen");
       Sleep (INFINITE);  
    }
    


  • Das kickt dann aber endgültig auch noch Win2k aus dem Rennen und erlaubt nur noch WinXP als Betriebssystem. Also neuen Compatible-Modus einführen, wusste gar nicht, dass es die Funktion gibt, tolle MSDN die ich da offline hab 😞

    MfG SideWinder



  • Das geht sogar unter NT, deshalb auch der Prototyp. In den SDK Headern ist die Funktion erst seit XP drin.


Anmelden zum Antworten