nichtmodaler Dialog in visual .net C++
-
Guten Abend zusammen,
wenn ich in einer Mfc-Anwendung in der oncreate() Methode der Mainframe-Klasse einen Dialog mitmDialog.Create(IDD_DIALOG, this);
kreiere dann ist der Dialog nicht an den Clientbereich der Anwendung gebunden. Warum nicht, wo doch this der Zeiger auf das Hauptanwendungsfenster ist?
Oder muss ich noch etwas an den Eigenschaften der Dialogklasse ändern?
Danke schonmal für die Tips!
-
Im Dialogfenstereditor von VS.NET hat das Dialogfenster noch eine neue Eigenschaft bekommen. Die heist irgendwas mit modal. wenn du die setzt, dann ist das fenster abhängig vom parent.
-
Meinst Du Modales System? Das funktioniert nicht. Ich möchte, daß sich der Dialog nicht aus dem MFC-Hauptfenster ziehen lässt. Etwas anderes mit modal habe ich nicht gefunden! Oder bin ich blind?
-
Hallo,
nimm mal anstatt
mDialog.Create(IDD_DIALOG, this);
dies:
mDialog.Create(IDD_DIALOG, CWnd::GetDesktopWindow());
Gruss
EB
-
Dann erscheint der Dialog hinter dem Anwendungsfenster auf dem Desktop! Ich möchte aber, daß der Dialog wie das ChildFrm der MDI-Anwendung an den Clientbereich des Hauptfensters gebunden ist. Sprich wenn ich das Hauptrahmenfenster verschieben will, der Dialog mitwandert.
-
Ach du gütiger. Vielleicht mal mit ModifyStyle und WS_CHILD versuchen?
-
Meinst Du so:
mDialog.Create(IDD_DIALOG, this); mDialog.ModifyStyle(NULL, WS_CHILD, 0); mDialog.ShowWindow(SW_SHOW);
Leider keine Besserung. Wie gesagt, das ganze wird in der OnCreate()-Methode der Mainfrm kreiert.
-
du must in der dialog resource unter einstellungen child anstatt popup angeben
-
Meinst Du die Eigenschaften des Dialogs? Dort sehe ich keinen sochen Eintrag. Da steht was von Anwendungsfenster true/false.
-
Hat denn keiner einen heissen Tip? Das Problem besteht immer noch. Es gibt ja noch das Stil Attribut. Wenn ich das auf untergeordnet stelle ist der Dialog grau unterlegt und irgendwie zerschnitten. Sehr komisch.