In vc++ mit Button Dialog aufrufen
-
Hallo Leute, vielleicht könnt ihr mir a helfen.
Ich will in visual c++ mit hilfe eines Buttons einen neuen Dialog aufrufen.
Wie kann ich das machen?
Mit welchen Befehlen geht das?Ich hoffe Ihr helft mir!!! vorab schon mal danke

-
Ich geh mal davon aus, dass Du den neuen Dialog schon erstellt hast, eine Klasse dazu auch und ein paar Grundkenntnisse hast.
Dann erstellst Du einen Ereignishandler für das Drücken auf den Button.
In dieser Ereignisbearbeitung musst Du dann den Code reinschreiben (Modaler Dialog):CDeinDialog dlg; dlg.DoModal();Falls Du noch Fragen hast, nur zu...
Gruß
Chris
-
Dialog erzeugen, dann eine Instanz von diesem Dialog bilden, und dann mit DoModal() den Dialog öffnen lassen
-
Es geht auch mit:
CMyClass* myClass = new CMyClass();
myClass->Create(IDD_DLGID, this);
myClass->ShowWindow(SW_SHOW);Gruß, Krys
-
hi chris.
Ich hab schon ein bisschen ahnung aber halt net so viel.
wenn ich eine klasse für meinen dialog erstelle soll ich die von dem vohergehenden dialog ableiten?
und wo muss dann das DoModal rein?
-
In diesem Fall brauchst du DoModal() nicht mehr, da mit ShowWindow(SW_SHOW) dein Dialog angezeigt wird.
-
hi Krys.
kannst du mir net mal den syntax für den button geben der den dialog aufrufen soll?
oder muss das in die neue klasse des neuen dialogs?wolfie

-
Du leitest Deinen neuen Dialog einfach von der Klasse CDialog ab.
DoModal() brauch nirgends rein. Das DoModal wird von CDialog vererbt und kann direkt über Deine neu erstellte Dialogklasse aufgerufen werden.
So, wie Krys beschreibt, gehts natürlich auch, dann ist der Dialog aber nicht Modal.Gruß
Chris
-
ja is ja schön un gut
aber wie rufe ich mit dem button den neuen dialog auf chris?
-
Du hast doch für Deinen Button eine ID unter den Eigenschaften des Button eingegeben? Dann musst Du, das Ereignis BN_CLICKED für den Button behandeln (Ereignishandler hinzufügen)
Mit welcher version des VS arbeitest Du?Chris
-
also der dialog hat seine ID und der button hat auch BN_CLICKED.
ich arbeite mit visual studio 6.0 enterprise edition.
´man ruft ja den dialog nich mit seiner ID auf, oder?
mit welchen befehlen is wichtig.wolfie
-
Also hast Du für den Button irgendwo in der Klasse des Dialogs eine Funktion die das Drücken auf den Button behandelt - sofern Du sie mit dem Klassenassi hinzugefügt hast - und dort fügst Du den o.g. Quelltext ein, um das neue Dialogfeld zu öffnen.
void CDialogMitButton::OnBnClickedButtonName() { CNeuerDialog dlg; dlg.DoModal(); }Gruß
Chris[ Dieser Beitrag wurde am 01.07.2003 um 13:58 Uhr von MuehBln editiert. ]
-
so chris
ich hab jetz den quelltext in dem button des alten dialogs eingefügt
damit der dann den neuen dialog aufruft.
es kommen aber noch fehler....ist wohl nich richtig so?wolfie
-
Hast Du die Klasse für den neuen Dialog in den alten Dialog importiert?
also #include "NeuerDialog.h"
-
ja ich hab die in der alten klasse deklariert.
und trotzdem kommt der fehler Cneu also meine klasse nicht deklariert.
was könnte ich vergesse haben?wolfie
-
Dann hast Du Dich irgendwie verschrieben, das sollte auf jeden Fall so klappen.
(Groß und Kleinschreibung?)
-
Warum macht sich jemand wie E.Henkes diese Arbeit? http://www.henkessoft.de/mfc_einsteigerbuch_kapitel2.htm
-
also die neue klasse heißt "neu" ich hab sie mit #include "neu.h" in der alten klasse deklariert.
und in den button der alten klasse, der den neuen dialog aufrufen soll,Cneu dlg;
dlg.DoModal();riengeschrieben. ist da was falsch dran?
wolfie
-
wenn die Klasse nur "neu" heißt,
dann solltest Du auch neu benutzen (und nicht Cneu)
(Man benennt aber i.a. Klassennamen mit einem C davor...)[ Dieser Beitrag wurde am 01.07.2003 um 14:25 Uhr von MuehBln editiert. ]
-
Wenn deine Klasse neu heisst warum schreibst du dann Cneu?
neu meindlg; meindlg.DoModal();
-
Oh mann, da war jemand schneller als ich...