wie kann ich aus einem Dialog einen anderen Dialog aufrufen



  • Hallo !

    Hab gesucht - aber nichts gefunden hier.

    Einfache Frage: wie kann ich aus einem Dialog einen anderen Dialog aufrufen



  • DoModal



  • Danke - aber das kann ja noch nicht alles sein

    ich will einen button belegen - wenn ich den anklicke soll sich der andere dialog öffnen

    also Do.Modal und dann ?



  • Du erstellst eine Klasse zu diesem Dialog der geöffnet werden soll. Falls du VS.Net benutzt einfach auf den Dialog rechtsklicken und "Klasse hinzufügen" auswählen. Danach kommst du mit einem Doppelklick auf den Button zum Code wo du eintippst:

    CNameDeinerKlasse dlg;
    dlg.DoModal();
    

    darfst nicht vergessen die header einzubinden, sonst findet er die klasse nicht. mehr ist das nicht 😉



  • dlg' : nichtdeklarierter Bezeichner
    C:\Dokumente und Einstellungen\Heinz\Desktop\Arbeit\Bearbeiten\buchen\buchenView.cpp(801) : error C2228: Der linke Teil von '.DoModal' muss eine Klasse/Struktur/Union sein

    das kommt wenn ich das Programm ausführe



  • du hast nicht

    CNameDeinerKlasse dlg;
    

    darüber geschrieben



  • das habe ich geschrieben:

    CBuchenView::dlg;
    dlg.DoModal();

    und das kommt als Fehlermeldung

    C:\Dokumente und Einstellungen\Heinz\Desktop\Arbeit\Bearbeiten\buchen\buchenView.cpp(800) : error C2039: 'dlg' : Ist kein Element von 'CBuchenView'
    c:\dokumente und einstellungen\heinz\desktop\arbeit\bearbeiten\buchen\buchenview.h(13) : Siehe Deklaration von 'CBuchenView'
    C:\Dokumente und Einstellungen\Heinz\Desktop\Arbeit\Bearbeiten\buchen\buchenView.cpp(800) : error C2065: 'dlg' : nichtdeklarierter Bezeichner
    C:\Dokumente und Einstellungen\Heinz\Desktop\Arbeit\Bearbeiten\buchen\buchenView.cpp(801) : error C2228: Der linke Teil von '.DoModal' muss eine Klasse/Struktur/Union sein
    Fehler beim Ausführen von cl.exe.



  • Ich hab die Klasse Monate1 genannt - also schreib ich doch

    Monate1 dlg;
    dlg.DoModal();

    jetzt führ das Programm zwar ohne Fehler aus aber es bricht ab wenn ich den Button anklicke

    buchen.exe hat ein Problem festgestellt und muss beendet werden.



  • Wenn Du das machst was Zanerva geschrieben hat sollte das gehen.
    Solltest du eine Fehler haben dann verwende den Debugger.



  • Für mich scheint es als wärst du ein Anfänger. Aus diesem Grund möchte ich dir ein Tutorial ans Herz legen das du mal durcharbeiten solltest.
    http://download.pearsoned.de/leseecke/VCPLUS6_21Tg/data/start.htm



  • Hallo !

    Schade dass mir das hier keiner mit einfachen Worten erklären kann.

    Ich fang nochmal an: Ich hab mir mit dem Assistenten eine Anwendung erstellt - Dialogbasierend.

    Auf diesem Dialog mache ich mir einen Button - und wenn ich nun diesen Button drücke soll ein anderer Dialog geöffnet werden.

    Mehr ist es doch nicht.

    Denn neuen Dialog habe ich Dialog1 genannt - wenn ich den Klassenassistenten öffne, fragt der mich nach einer neuen oder einer bestehenden klasse.

    Ab hier wäre mir die Hilfe schon recht.



  • also du erstellt deinen dialog

    dann gehtst du in der recoursenansicht macht su rechte maus und dann neuen dialog einfügen oder manuell

    du hast also einen neuen dialog

    z.b.

    Cdialog2

    in dieser erstellst du eine membervarialbe dlg z.b.

    jetzt musst du in deinem ersten dialog die header includen das er die klasse Cdialog2 kennt.

    dann in deinem button machst du

    .... // dein code halt

    dlg.DoModal(); // hier wird der 2te aufgerufen

    du sollst NICHT über der zeile Cdialog2 dlg; schreiben. lies dir das tutorial durch was gepostet wurde.

    Da ist ein NOOB for dummies bsp drinnen, was du einfach eins zu eins machst

    stichwort

    ---------- Das Dialogfeld in der Anwendung einsetzen ----------------



  • was bedeutet das:

    du sollst NICHT über der zeile Cdialog2 dlg; schreiben



  • lieber heinz

    wenn du es nicht so verstehst

    sorry dann kann ich wirlich nur auf die

    STEP by STEP anleitung in dem tutorial empfehlen.

    dort ist FETT geschrieben

    TAG 5: dialogfelder

    dort wird wirklich schritt für schritt! das erklärst was du brauchst, mit bildern!

    also besser kann man es nicht beschreiben

    sorry, aber leute die nicht ratschläge befolgen sind bei mir out



  • Hallo !

    ich soll hier auch laut Eurer Auskunft eine Membervariable erstellen in meinem neuen Dialog, der ja vom ersten aufgerufen werden soll.

    Diese Membervariable erstelle ich wo ???

    Button - Eingabefeld - Listbox oder wo ???



  • Junge junge

    BIST DU D.... oder was???????????????? 👎 👎 👎

    was sagte ich?? lies das tutorial!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 😡 😡 😡 😡

    dort hast du schritt für schritt die beschreibung drinnen

    schritt fuer schritt!!!!!!!!!!!!!

    mit bildern genau für solche lamer wie dich die alles in den Ar.... gesteckt bekommen wollen

    sorry aber nur wenn man dich mal so beleidigt, checkst du es maybe!!!!!!

    Tag 5
    Dialogfelder

    Eigene Dialogfelder erstellen

    Das Dialogfeld in der Anwendung einsetzen

    =================================

    lies das mal bitte duch!!!!!!!



  • heinz.hemer schrieb:

    Hallo !

    ich soll hier auch laut Eurer Auskunft eine Membervariable erstellen in meinem neuen Dialog, der ja vom ersten aufgerufen werden soll.

    Diese Membervariable erstelle ich wo ???

    Button - Eingabefeld - Listbox oder wo ???

    ausserdem kannst du nicht lesen!

    ich sagte in der neuen klasse sollst du diese membervariable erstellen! WO sagte ich in dem "alten"?????

    hier nochmal als zitat! dialog2 soll der 2te darstellen natürlich

    z.b.

    Cdialog2

    in dieser erstellst du eine membervarialbe dlg z.b.



  • Also irgendwie reden wir aneinander vorbei.

    Ich habe auch geschrieben im N E U E N Dialog eine Membervariable erstellen.

    Ich will ja nur wissen wem diese zugeordnet wird : einem Button oder wem ?



  • ok jetzt wo ich mich etwas beruhigt habe

    überleg doch mal

    du hast einen dialog und dann einen 2ten

    warum solltest du die membervariable einen button oder noch besser 👍 listbox 👍 zuweisen??? Das gibt keinen sinn

    du sollst ihn der klasse zuweisen.

    du geht da in die klassenansicht und doppelklickst da auf die klasse es 2ten dialogs

    jetzt hast du da ALLE !!! membervaribalen der dialog2 ( nenn ich die mal so )

    die nennt sich dann wahrscheinlich

    Cdialog2 und als datei dialog2.cpp und dialog2.h in dieser dialog.h <--- sind alle membervaribalen drinnen ( buttons, listboxen ect )

    du kannst entweder

    manuell was reinschreiben

    oder in der klassenansicht ( wer hätts gedacht ) mit rechter maustaste neue membervariable hinzufügen auswählen

    da gibts du die "daten" ein.

    hier ein auszug aus dem tutorial das du zu 100% nicht beachtet hast! 😡

    1. Gehen Sie im Arbeitsbereich auf die Registerkarte Klassen.

    2. Klicken Sie mit der rechten Maustaste auf die Klasse CDialogeDlg, um das Kontextmenü zu öffnen.

    3. Wählen Sie aus dem Kontextmenü den Befehl Member-Variable hinzufügen.

    4. Im Dialogfeld Member-Variable hinzufügen legen Sie den Variablentyp mit CMsgDlg , den Variablennamen mit m_dMsgDlg und den Zugriffsstatus als Privat fest. Klicken Sie auf OK, um die Variable in Ihr Hauptdialogfeld aufzunehmen.

    Wenn Sie die Klasse CDialogeDlg in der Baumansicht erweitern, ist die Instanz des benutzerdefinierten Dialogfelds als Element der Hauptdialogfeldklasse der Anwendung zu sehen. Das bedeutet, daß Sie nun das benutzerdefinierte Dialogfeld in Ihrer Anwendung nutzen können.

    dann der aufruf in der ersten klasse

    // Meldungsdialog anzeigen und Ergebnis auffangen
    10: if (m_dMsgDlg.DoModal () == IDOK) // <<<----------- hui hier drinnen
    11: {
    12: // OK gewählt. Nachricht anzeigen, die Benutzer
    13: // in Nachrichtendialog eingegeben hat
    14: m_sResults = m_dMsgDlg.m_sMessage;
    15: // Dialogfeld aktualisieren
    16: UpdateData(FALSE);
    17: // Schaltfläche Welche Option aktivieren
    18: m_cWhichOption.EnableWindow(TRUE);
    19: }

    Was ist soooo schwer in dem tutorial einfach alles eins zu eins so zu machen wie in der beschreibung+bildern.

    das können kleine kinder!

    also sag mir bitte in nächsten post

    "danke, ich habs genau so gemacht, und es funkioniert, danke euch allen"



  • Das steht im geposteten 21 Tage c++

    3. Doppelklicken Sie auf die Datei DialogeDlg.cpp. Daraufhin erscheint der Quellcode für das Hauptdialogfeld der Anwendung im Bearbeitungsbereich des Visual Studios.

    Na klasse, bei mir stehen 5 Dateien mit der Endung .cpp

    Aber keine heißt DialogeDlg.cpp

    4. Gehen Sie an den Beginn des Quellcodes, wo sich die #include-Anweisungen befinden, und fügen Sie eine #include-Anweisung für die Datei MsgDlg.h vor die Datei DialogeDlg.h ein, wie es Listing 5.3 zeigt.

    Da stehen bei mir 6 Dateien mit der Endung .h

    Aber keine heißt MsgDlg.h


Anmelden zum Antworten