Eigenen Dialog immer kurz vor .DoModal() aktualisieren



  • Abend!

    ich habe meiner Anwendung ein neues Dialogfenster spendiert was per .DoModal aufgerufen wird. Jetzt möchte ich da aber immer einige Einstellungen ändern bevor es angezeigt wird, in welcher Methode der Dialogklasse muss ich das machen? OnInitDialog() wird scheinbar nicht aufgerufen, da hab ich einfach mal ein PostQuitMessage(0) eingebaut...



  • es ist die InitInstace(); diese methode reagiert auf WM_INITDIALOG.

    Esco



  • Mein VS 7 zeigt mir unter der Klasse CDialog keine Methode InitInstance() an?



  • Es ist OnInitDialog.
    Kannst das ja mal mit ner MessageBox testen...

    Devil



  • devil81 schrieb:

    Es ist OnInitDialog.
    Kannst das ja mal mit ner MessageBox testen...

    Devil

    Klappt nicht 😞

    Mein Dialog erbt ja von der Klasse CDialog, auch ihre Funktionen, und in der Methode OnInitDialog() habe ich ganz am Anfang PostQuitMessage(0); gesetzt und ALLES neu erstellt -> die Anwendung beendet sich nicht wenn ich per Button den Dialog anzeigen lasse.

    Ist es relevant das der Dialog als Variable in einer anderen Dialogklasse enthalten ist?



  • InitInstanz gibt es bei SDI/MDI-Anwendungen in der APP-Klasse und nicht in Dialogen oder FormViews.

    In einem FormView ist es OnInitialUpdate und in einem Dialog wie devil81 schon sagte OnInitDialog.



  • Wiegehtdas schrieb:

    devil81 schrieb:

    Es ist OnInitDialog.
    Kannst das ja mal mit ner MessageBox testen...

    Devil

    Klappt nicht 😞

    Mein Dialog erbt ja von der Klasse CDialog, auch ihre Funktionen, und in der Methode OnInitDialog() habe ich ganz am Anfang PostQuitMessage(0); gesetzt und ALLES neu erstellt -> die Anwendung beendet sich nicht wenn ich per Button den Dialog anzeigen lasse.

    Ist es relevant das der Dialog als Variable in einer anderen Dialogklasse enthalten ist?

    Es reicht nicht eine Methode OnInitDialog zu erstellen ... 🙄

    Du must im Klassenassistenten die Nachricht WM_INITDIALOG auswählen, und dort
    dann für die Klasse die Methode erstellen.

    Devil



  • Das hab ich auch nicht gemacht 🙄 , ich meinte das ich alles neu compiliert hatte 🙂

    Ich finde WM_INITDIALOG nicht, ich hab wie gesagt das 7. Studio... da gibt es unter Meldungen nur WM_INITMENU und WM_INITMENUPOPUP 😕



  • Ich habe das gleiche Problem . VC7 und kein WM_IINITDIALOG.
    Das liegt vielleicht daran ,dass aus einem Dialog ein modaler dialog aufgerufen wird. dann gibt es diese nachricht nicht .
    Frage ist welche Nachricht stattdessen dafür zuständig ist?
    oder muß man den modalen dialog denn aus dem parent initialsieren?



  • Wenn der Dialog von CDialog abgeleitet ist dann gibt es die virtuelle Funktion OnInitDialog.

    Dies ist eine virtuelle Funktion und kann überschrieben werden. Somit gibt es auch keien Message wie z.B.
    WM_IINITDIALOG

    Das war schon immer so und nicht erst seit Vc++ 7.x



  • Einmal richtig erklärt und schon hab ich es kapiert !! 😉

    Jetzt klappts! Danke
    (Linus)


Anmelden zum Antworten