Fenster bei dialogbasierter MFC Anwendung

gehrti

Mitglied
Hallo!

Gibt es die Möglichkeit mehrere Fenster zu öffnen, zwischen denen man wechseln kann oder geht sowas nur mit MDI?

MfG. Thomas
 
Hi,
klar geht das. Mit einem nichtmodalen Dialog ist das kein Problem. Hier ein Beispiel meiner HP (mit Visual C++ 6.0 erstellt):
  • Erstelle eine Dialogfeldbasierte Anwendung mit dem Namen Extra_Dialog
  • Füge einen neuen Dialog ein, indem du im Arbeitsbereich auf Ressourcen gehst und dort mit der rechten Maustaste auf Dialog klickst. Wähle im aufgeklappten Kontextmenü Dialog einfügen und behalte die vorgegebene ID (IDD_DIALOG1)
  • Gehe in den Klassen-Assistenten und der Dialog Hinzufügen einer Klasse erscheint. Wähle die Voreinstellung Neue Klasse erstellen und drücke auf OK
  • Daraufhin erscheint der Dialog Neue Klasse. Trage unter Name den Namen der Klasse für den neuen Dialog ein: CDialog_Neu und behalte für alle anderen Auswahlmöglichkeiten die Standardeinstellungen. Bestätige deine Eingabe mit OK
  • Wir müssen jetzt noch eine Instanz der neuen Klasse,also CDialog_Neu in der Hauptklasse erstellen. Wähle dazu im Arbeitsbereich das Register Klassen, klicke mit der rechten Maustaste auf CExtra_DialogDlg und wähle Member-Variable hinzufügen. Variablentyp: CDialog_Neu, Variablenname: m_dlgDialog_Neu, Zugriffstatus: Private
  • Füge folgenden Code in die Funktion OnInitDialog() der Hauptklasse ein:
Code:
BOOL Extra_DialogDlg::OnInitDialog() 
{ 
	...
	// ZU ERLEDIGEN: Hier zusätzliche Initialisierung einfügen
	// Das zweite Dialogfeld erzeugen 
	m_dlgDialog_Neu.Create(IDD_DIALOG1, this); 
 
	// Zweites Dialogfeld anzeigen 
	m_dlgDialog_Neu.ShowWindow(SW_SHOW); 
 
	return TRUE;
}
  • Inkludiere zum Schluss noch die Header-Datei der neuen Klasse (Dialog_Neu.h) in die Hauptklasse (Extra_DialogDlg.cpp). Gehe dazu an den Anfang der Hauptklasse (Extra_DialogDlg.cpp) und inkludiere die neue Klasse folgendermaßen:
Code:
// Extra_DialogDlg.cpp : Implementierungsdatei 
#include "stdafx.h" 
#include "Extra_Dialog.h" 
#include "Extra_DialogDlg.h" 
 
#include "Dialog_Neu.h" // Hier wird unsere neue Klasse inkludiert

Um den zusätzlichen Dialog z.B direkt neben die Hauptanwendung zu positionieren kannst du die Funktionen MoveWindow() oder SetWindowPos() verwenden.
 
Zurück