• Hallo Leute..
    Ich haette da folgendes Problem: Hab eine MDI-Anwendung mit MFC geschrieben, die zwei Dialogfenstern (nicht modal) verwenden soll. Ich versuche daher in meiner Klasse 'MainFrm::CMDIFrameWnd' in der OnCreate() Methode die Dialoge zu erzeugen:

    Der erste Dialog wird korrekt erzeugt, dafuer aber schafft er den zweiten nicht. Die Dialoge sind aehnlich aufgebaut (so wie der .NET Wizard sie generiert). Hab mir den Verlauf im Callstack angeschaut und er das Problem tritt in der Anweisung

    Code
    309  hWnd = ::CreateDialogIndirect(hInst, lpDialogTemplate,
    310    pParentWnd->GetSafeHwnd(), AfxDlgProc);

    im File 'dglcore.cpp (Methode: Cwnd::CreateDlgIndirect(...)) auf. D.h. CreateDialogIndirect(...) liefert in Zeile 309 NULL, was dazu fuehrt, dass er dann folgende Fehlermeldung ausgibt:

    Code
    Failed to create my_dlg_2
    Warning: Window creation failed: GetLastError returns 0x00000000
    Warning: failed to create CFrameWnd.

    Meine Frage nun: Habt ihr eine Ahnung wieso er das macht? Also wieso er das zweite Dialog nicht erzeugen kann, wo er doch den erste erzeugt?

    PS: Hab auch versucht, die Aufrufe zu vertauschen, also zuerst dlg2 und danach dlg1 zu erzeugen, aber das Erzeugen funktioniert gleich beim zweiten (dlg2) nicht.

    Bin fuer jeden Hint dankbar..
    Danke im Voraus..
    ciao..

  • Nimmst du für beide Dialoge dieselbe Klasse oder ist das ein Tippfehler?
    Wenn du nur den 2.Dialog erstellst und öffnest, geht's dann? Wenn nicht, liegt der Fehler wohl in der Ressourcen-Datei des Dialogs.

  • Zitat von Ubik

    Nimmst du für beide Dialoge dieselbe Klasse oder ist das ein Tippfehler?

    Eigentlich ist es ein Tippfehler aber es gehen beide Varianten nicht..

    Zitat von Ubik

    Wenn du nur den 2.Dialog erstellst und öffnest, geht's dann? Wenn nicht, liegt der Fehler wohl in der Ressourcen-Datei des Dialogs.

    Cool.. hast recht gehabt.. da war der Fehler. Ich hab' mir aber die Fehlersuche erspart, gleich ein neues Projekt angefangen und die alten Files eingefuegt (bis auf das Ressource-File natuerlich)..

    Nochmals danke.. hat geholfen..
    ciao..

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!