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 seindas 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
DialogfelderEigene 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