wie kann ich aus einem Dialog einen anderen Dialog aufrufen
-
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
-
newkid schrieb:
warum solltest du die membervariable einen button oder noch besser
listbox
zuweisen??? Das gibt keinen sinn
Da du es imme noch nciht verstanden hast.
die "neue" variable
NICHT einer listbox
NICHT einem buttonzuweisen
sondern dem dialog zuweisen
im tutorial heisst es nicht
Cdialog2 sondern CMsgDlg
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.
-
heinz.hemer schrieb:
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
willst du mich verar... ne im ernst
denkst du die im tutorial haben DASELBE projekt wie DU ???? mit den EXAKT gleichen namen wie DU vergeben hast????????
ne mal im ernst!
Du kannst auch 6 oder 60 .h endungen haben, das ist SCHExxxEGAL
es geht ums prinzip
wenn du DEN neuen dialog
Cdialog2 gennant hast, heisst die .h dialog2
wenn du sie
Cassineuerdialog genannt hast, dann heisst die assineuerdialog.h
Du musst zuerst einen neuen dialog erstellen ( hast du schon gemacht oder??????? )
dann merkst du dir den namen! und wenn der dialog nicht "zufälligerweise"
CMsgDlg
heisst sondern
Cmeinneuerdialog
dann musst du überall im tutorial da drauf klicken wo Cmeinneuerdialog und nicht wo CMsgDlg stehst. das ist dir schon klar, oder?
nimm wirklich erstmal ein gutes c++ buch zur hand und lerne was über klassen
dann nimm das tutorial in die hand und gehe da alles durcherst dann mach dein "projekt"
ich helf dir nicht mehr, ist ja hoffnungslos, weil du wirklich null ahnung hast, was die grundprinzipen sind
-
c:\dokumente und einstellungen\heinz\desktop\arbeit\bearbeiten\buchen\monate5.h(42) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'm_dMsgDlg'
c:\dokumente und einstellungen\heinz\desktop\arbeit\bearbeiten\buchen\monate5.h(42) : error C2501: 'CMsgDlg' : Fehlende Speicherklasse oder Typbezeichner
c:\dokumente und einstellungen\heinz\desktop\arbeit\beich hab die Membervariable erstellt und das kommt raus
-
Also ich hab es jetzt geschafft.
Und wenn ich jemandem dies erklären sollte dann so:
Unter Ressourcen Ansicht im Ordner Dialog einen neuen Dialog hinzufügen
Doppelklick auf den neuen Dialog und eine neue Klasse erstellen mit dem Namen z.B. DialogNeu
In die Klassenansicht wechseln auf die Klasse, wo der erste Dialog drin ist.
Dort eine Membervariable erstellen
Typ: DialogNeu ( also die eben erstellte Klasse )
Name z.B.: m_dialogneuAufruf des ganzen mit m_dialogneu.DoModal();
Fertig - und nicht so irritierend erklären mit Membervariablen erstellen in der neuen klasse - da kommt man ja nicht weiter.
Bis zum nächsten Mal
-
Und vielleicht noch ein:
TROZDEM DANKE FÜR DEINE MÜHEN, AUCH WENN´s MIR NICHT GEHOLFEN HAT.
bye, BigSigi
-
In die Klassenansicht wechseln auf die Klasse, wo der erste Dialog drin ist.
Der Dialog ist nicht in der Klasse. Die Klasse ist quasi der Bauplan für den Dialog, und in dem moment wo du eine (Member)Variable von der Klasse anlegst erzeugst du ein Object davon und kannst damit arbeiten. Mit DoModal() machst du es dann nur nur noch sichtbar.