Dialog Ergebnis abfragen



  • Hallo,

    nachdem meine Consolen-Applikation unter VS C++ 2005 keine weiteren Probleme macht möchte ich mich als Windows Newbie (komme aus der Echtzeit-Welt) auch ein bisschen mit der grafischen Oberfläche vertraut machen.

    Komme mit dem GUI-Designer soweit auch klar. Allerdings ist mir aufgefallen das
    der erzeugte Code bei mir immer in einer *.h anstatt *.cpp Datei abgelegt wird.
    Die zugehörige *.cpp Datei wird ebenfalls aber praktisch leer erzeugt. Ist das so korrekt ?
    Habe jetzt mal an einen Button im Form1-Window ein Click-Event-Funktion drangehangen mit der ich al Beispiel einen About-Dialog erzeuge.

    Includiere dazu in der Form1.h das erzeugte about.h
    Ist das so gedacht unter VS-WinForms ?

    Der Aufruf funktioniert dann mit nachfolgenden Zeilen

    about ^About = gcnew about();
    About->ShowDialog();
    

    Kann ich jetzt irgenwie das Ergebnis z.B. ok-Button abfragen und dann diesen Dialog entsprechend schliessen ?

    Noch ne Frage:
    Was gehört jetzt in welche Datei *.h *.cpp

    Gruss
    Jürgen



  • Dialog Result dr = frm->ShowDialog();
    if (dr == DialogResult::Ok)
      //...
    

    Und wohin Du was schreibst ist eigentlich egal. Du kannst es soch machen wie der "Designer" vorschlägt (also ins h-File) oder Du machst dort nur die Deklaration und implementierst es im cpp-File.
    Ich würde es einfach ins h-File machen...



  • Es wäre empfehlenswert die Implementierung im .cpp File zu machen, alleine wegen der abhängigkeiten die sich bei "größeren" Projekten ergibt.

    Hat man alles im Header stehen und muss etwas an der Implementierung ändern, muss alles übersetzt werden, was den Header auch verwendet. So kommen bei größeren Projekten wesentliche Übersetzungszeiten hinzu. Ist die Implementierung in einer .cpp Datei muss nur dieses Objekt erstellt und neu verlinkt werden.

    Desweiteren lassen sich Abhängigkeiten leichter auflösen wenn man zwischen Deklaration und Definition trennt.

    Hat man sich das bei kleineren Projekten angewöhnt wird man später bei größeren Projekten belohnt.



  • @Jochen Kalmbach
    'DialogResult' war was ich gesucht habe, danke. Werd mir bei Gelegenheit mal etwas schriftliches zum Thema 'Winforms' besorgen. Möchte mal ein bisschen in die Windows-GUI Welt reinschnuppern.
    Konsole reicht mir aber derzeit für meine 'real world' Progs.

    @Knuddlbaer
    Die von die beschriebene Art der Trennung würde ich ja auch normalerweise so handhaben. Hab mich halt darüber gewundert wie die Projektdateien hier vom GUI-Designer angelegt werden. Dachte es wär vielleicht eine spez. Konfigurationseinstellung der IDE.

    Gruss
    Jürgen


Anmelden zum Antworten