MFC Button auf neues Fenster verlinken



  • Wenn ich das mit API-Funktionen machen müsste, würde ich von neuem Anfangen müssen, oder? Ich denke die vom MFC-Assistenten erstellten Klassen müssten vollkommen ausreichen, wenn ich mit MDI arbeite. Ich kenne nur die Befehle zum Aufruf eines Fensters nicht. Bei MSDN habe ich schon das Thema CWnd gefunden, aber da sind die Sachen so unübersichtlich, dass man aus dem Klicken nicht mehr rauskommt.

    Wenn jemand schon zwei Fenster hat, bei denen man von einem ins andere kommt, bitte schicken an: beiderarbeit@arcor.de



  • lies dir erstmal visualc++ in 21 tagen durch, damit du die mfc basics verstehst
    ich glaub das gibts irgendwo online



  • Da hab ich schon mal reingeschaut...das Problem ist, das ich das Ganze neben meiner Programmierung als "Zusatzarbeit" für nen Kollegen machen muss, der zu dumm war sich in seinen Bereich einzuarbeiten (MFC) und ich nun Unmengen von Theorie dazu lesen müsste. Wenn ich zwei Frames hätte, bei denen ich von einem ins andere komme (also schon einmal die Befehlskette vorhanden ist), wäre mir schon sehr geholfen und ich könnte das Ganze auf das ganze Projekt anwenden. (aus ein paar Zeilen Code wird man schlauer als aus Scripten, und man hat schneller Ergebnisse).



  • Also, folgendes habe ich bis jetzt geschafft:

    mit dem Assi eine SDI erstellt, dazu noch einige Dialoge, die ich jeweils mit einem Button aufrufe. (Der erste Dialog wird aus der Menüleiste des SDI-MainFrames aufgerufen, danach direkt verkettet->Dialog1 ruft Dialog2 auf per Button)
    Im MainFrame des SDI kann ich bislang mit meinen becheidenen Kenntnissen die OnDraw um Text oder einzelne Pixel erweitern.

    Wo ich noch keinen Plan hab: wie binde ich eben auf diesem weißen Frame eine Grafik ein (z.b. eine Bitmap). Bei den Dialogen ist das ja einfach, aber hier müsste ich wohl per "Hand" zeichnen, oder wie?
    Zum anderen schaffe ich es nicht bei den Dialogen bei einem DoModal() das vorherige Fenster zu schließen, d.h. das neue Fenster wird immer darübergelegt und ist nach dem Beenden des anderen Fensters wieder aktiv. DestroyWindow scheint nicht zu funzen, brauche ich Zeiger auf das jeweilige Fenster, um darauf aus dem anderen heraus zuzugreifen und es zu schließen?

    Danke vorab für die Hilfe!







  • Sorry, auch wenn ich Dir für die Infos dankbar bin, ich habe keine Zeit um mir noch zig Tutorials reinzuziehen.
    Wenn mir keiner helfen kann, wird die Sache eben nicht tun, das liegt dann nicht an mir wenn sich andere nicht einarbeiten. Ich habe eh schon viel Zeit da rein investiert, aber mit dem Klassenassistenten komme ich eben noch nicht 100%ig klar.



  • hi,

    wieso erstellst du nciht einfach ein objekt des fensters wenn du auf den button klickst.
    oder wenn das fenster schon da ist einfach aktiv setzen.



  • Ich hab mich da jetzt umentschieden und bin auf rein dialogbasierend umgestiegen, neu aufgebaut, soweit tut es auch wie vorher..was öffnen der Dialoge angeht.
    Ich erstelle einen Dialog erst bei der OnClick vom Button. Mittlerweile habe ich auch Defaultwerte für die Edit-Felder etc., also Membervariablen angelegt und initialisiert. Die User-Auswahl bei den Feldern kann nun auch per "UpdateData" wieder in die Variablen zurückgeschrieben werden.
    Ich habe nun ein neues Problem : um Radio-Buttons zu gruppieren, darf nur eine aus der Gruppe den Reiter "Group" (bei Einstellungen) aktiviert haben. Da ich aber 3 Radiobuttons habe, benötige ich mind 2 Variablen, die ich abfragen kann beim Updaten. Laut MFC-Assi können aber nur die Radiobuttons eine Variable bekommen, die auch den Reiter "Group" aktiviert haben. Sobald ich aber mehr als einen auf Group stelle, kann ich im Programmablauf nicht mehr nur 1 aus 3 wählen, sondern es ist möglich 2 gleichzeitig zu aktivieren.
    Bei Editboxen habe ich gänzlich das Problem, dass die sich nicht gruppieren lassen (von dreien können alle drei angewählt werden, auch wenn in Gruppe).
    Ach mönsch...das wird wohl noch ein wenig dauern..
    Aber danke für Eure Infos 🙂



  • Ein Prob gelöst: wenn man die Radiobuttons gruppieren möchte, reicht es nun doch einen auf "Group" zu setzen. Der Membervariable weist man dann einen Int-Wert zu, mit dem man dann die einzelnen Radiobuttons setzen kann (einfach m_intVariable = 1, um den zweiten zu aktivieren, fängt ja bei 0 an die Zählerei :D).
    Krasse Sache *g*.


Anmelden zum Antworten