Weiteren Dialog aus Dialoganwendung anzeigen...
-
ich hab da ganz einfach in die Ereignisbehandlungsmethode des Buttons den betreffenden Dialog instanziiert
Was soll denn das sein?
Ich mach immer sowas:
CMeinDlg dlg; INT_PTR nResponse = dlg.DoModal();
-
Genau das habe ich auch gemacht. Da gibts auch nicht viel zu zeigen an Code.
Ich habe ja wie gesagt nur den "Hauptdialog" und den anderen Dialog von dem ich auch eine Klasse (von der Ressource mit "Add Class") generiert hab.Und in der Ereignisbehandlungs-Methode von meinem Button im Hauptdialog habe ich genau den Code von Jochen Kalmbach.
Hier hab ich auch mal geschaut, und hab gesehen dass der Konstruktor meiner Dialogklasse auf jeden Fall durchlaufen wird. DoModal() wird ja in der Oberklasse aufgerufen, das hab ich jetzt so nicht gesehen... aber das ist doch eigentlich trivial dass das dann auch aufgerufen wird, wenn das als nächste Anweisung da steht...
-
Achso... also Fehlermeldung oder sowas bekomme ich nicht. Der Dialog wird eben einfach nicht angezeigt
-
Und was sagt GetLastError? Evtl. stimmt was mit dem Diaog nicht oder den Controls darin.
-
ähm das prob hatte ich auch schon.
wenn du die dialog Variable in der funktion erstellst must du nen zeiger darauf legen.
CMeinDlg *dlg = new CMeinDlg();
INT_PTR nResponse = dlg->DoModal();
...
delete dlg;anderst gins bei mir nicht
wenn du es ohne zeiger machen willst must du dir eine membervariable in der headerdatei deines hauptdialoges erstellen erst dann wird dir der dialog gezeigt.
*.h
CMeinDlg m_Mydlg;*.cpp
INT_PTR nResponse = m_Mydlg.DoModal();
-
LowFly schrieb:
wenn du die dialog Variable in der funktion erstellst must du nen zeiger darauf legen.
Nein, das muss auch so gehen, wie Jochen das geschrieben hat.
Ich mache das ja zu 99% so und es klappt.
Nur manchmal hat man im Dialog nen Fehler und dann geht der gleich wieder zu.
-
stimmt sorry hab grad nochmal nachgekuckt das war bei Create so.

-
Danke für die schnellen Antworten.
Also @LowFly, daran kann es absolut nicht liegen, weil das was du machst ist im Prinzip dasselbe wie ohne Zeiger (habs aber trotzdem mal versucht
)Ne, also ich hab jetzt herausgefunden an was es liegt. Ich hab 2 RichEditControls (2.0) auf dem Dialog platziert. Ich hab die mal gelöscht zum Testen, und siehe da der Dialog wurde angezeigt. Nur woran liegt das ? Ich brauche nämlich Steuerelemente wo ich mehrzeiligen Text eingeben kann...
-
Du hast aber "AfxInitRichEdit2" in Deiner "CMFCApp1App::InitInstance" aufgerufen, oder?
-
Genau hier hätte GetLastError eine entsprechende Info gebracht!
-
Jochen Kalmbach schrieb:
Du hast aber "AfxInitRichEdit2" in Deiner "CMFCApp1App::InitInstance" aufgerufen, oder?
Nein das habe ich nicht. Und genau daran lag das auch. Danke schön.
Sry wusste ich nicht...dachte man kann die ganzen Steuerelemente einfach so benutzen, ohne da noch irgendwas rumzufrickelnBzw. das mit GetLastError() hatte ich schon probiert, da hab ich allerdings immer 0 zurückbekommen