Frage zu Fenster, C++



  • Hallo,

    habe den DevC++ Compiler,
    ich möchte jetzt mein Quiz (von Konsole) in Windows Fenster ändern.
    Allerdings wenn ich ich ein Windows Projekt mache, und den C++ Code hineinpacke
    kommen viele Fehler.
    Dann habe ich gesehen, das es Message.Box oder irgendwie so heisst.

    Muss ich jetzt alles nochmal machen und Windows C++ lernen oder was ist das, oder
    wie geht es trotzdem!

    Vielen Dank!



  • Auweia...

    Also wenn du C++ schon gut kannst, kannst du dich mit Windows-Programmierung beschäftigen. Aber dein Ansatz mit dem Dev-C++ Windows-Projekt funktioniert so auf keinen Fall (aber keine Angst ich hab das das erste Mal auch so versucht 🙄 ). Das was der Dev-C++ da an Code vorgibt, wenn du ein Windows-Projekt machst ist eine einfache Fenster-Erstellung mit Hilfe der Win-Api. Wenn du dich jetzt also mit Windows beschäftigen willst empfehle ich dir im Win-Api-Forum hier vorbeizuschauen und ein paar Tutorials (z.B. www.win-api.de) durchzuarbeiten aber Achtung, dass ist nicht so einfach also erst anfangen wenn du C++ wirklich verstanden hast.



  • WinAPI-Programmierung unterscheidet sich signifikant von der Erstellung und Handhabung von Konsolenprogrammen. Ein Konsolenprogramm sieht vielleicht wie folgt aus:

    #include <iostream> 
    int main() 
    { 
     std::cout << "Hallo!" << std::endl; 
     std::cin.get();
     //C++-ISO-Standard von 1998 erfordert hier kein "return 0;"
    }
    

    während ein analoges Windowsprogramm in C++/WinAPI mit einer Message-Box sich wie folgt liest:

    #include <windows.h> 
    int WINAPI WinMain(HINSTANCE hI, HINSTANCE, char*, int) 
    { 
     MessageBox(NULL, "Hallo!", "", MB_OK); 
     return 0; 
    }
    

    Das sind bezüglich Ein- und Ausgabe völlig verschiedene Welten.
    Das Grundgerüst für ein Fenster in C++/WinAPI findest Du hier:
    http://www.henkessoft.de/api2.htm

    Es gibt aber einen sehr grundsätzlichen Unterschied zwischen Konsole und Windows:

    In Windows-Programmen ist der Ablauf nicht streng vorgeben.
    Folgendes Beispiel: Der Anwender soll zwei Zahlen eingeben, die das Programm multipliziert. Das Ergebnis wird auf dem Bildschirm ausgegeben.

    Konsolen-Programme fragen über Tastatur die beiden Zahlen nacheinander ab,
    kontrollieren die Eingaben auf Plausibilität, führen die mathematische Verknüpfung durch und geben das Ergebnis anschließend auf dem Bildschirm aus.
    Der Benutzer kann nicht Eingabe 2 vor Eingabe 1 eingeben. Wird gerade Eingabe 2 abgefragt, kann man nur diese Eingabe durchführen und nicht noch rasch Eingabe 1 korrigieren.

    In Windowsprogrammen erfolgen Abfragen typischerweise nicht streng nacheinander. In sogenannten Dialogfenstern werden z.B. ohne strenge Abfolge die notwendigen Eingaben entgegen genommen, nicht systematisch abgefragt. Die Verknüpfung erfolgt nicht automatisch nach der letzten Eingabe, sondern der Anwender leitet den nächsten Schritt jeweils selbst ein (typischerweise mit OK, WEITER oder FERTIG). Dies ist ein entscheidender Unterschied. Man kann Eingaben einer Stufe durch "Abbrechen" zunichte machen. Korrekturen sind hierdurch leichter möglich.


Anmelden zum Antworten