Freigeben über


Abgeleitete Fensterklassen

Sie können Fenster direkt aus CWnd erstellen, oder Sie leiten neue Fensterklassen von CWnd ab. Im Allgemeinen erstellen Sie eigene, benutzerdefinierte Fenster auf diese Weise. Allerdings werden die meisten Fenster, die in einem Frameworkprogramm verwendet werden, stattdessen aus einer der von MFC bereitgestellten, von CWnd abgeleiteten Rahmenfensterklassen erstellt.

Klassen für Rahmenfenster

  • CFrameWnd
    Wird für SDI-Rahmenfenster verwendet, um ein einzelnes Dokument und dessen Ansicht zu gestalten. Das Rahmenfenster ist sowohl das Hauptrahmenfenster für die Anwendung als auch das Rahmenfenster für das aktuelle Dokument.

  • CMDIFrameWnd
    Wird als Hauptrahmenfenster für MDI-Anwendungen verwendet. Das Hauptrahmenfenster ist ein Container für alle MDI-Dokumentfenster und gibt seine Menüleiste für diese frei. Ein MDI-Rahmenfenster ist ein Fenster der obersten Ebene, das auf dem Desktop angezeigt wird.

  • CMDIChildWnd
    Wird für einzelne Dokumente verwendet, die in einem MDI-Hauptrahmenfenster geöffnet werden. Jedes Dokument und seine Ansicht werden durch ein untergeordnetes MDI-Rahmenfenster eingerahmt, das im MDI-Hauptrahmenfenster enthalten ist. Ein untergeordnetes MDI-Fenster sieht einem typischen Rahmenfenster sehr ähnlich. Es befindet sich aber nicht auf dem Desktop, sondern bleibt in einem MDI-Rahmenfenster. Dem untergeordneten MDI-Fenster fehlt allerdings eine eigene Menüleiste, sodass es die Menüleiste des MDI-Rahmenfensters mitverwenden muss, in dem es enthalten ist.

    Weitere Informationen finden Sie unter Rahmenfenster.

Andere Fensterklassen, die von "CWnd" abgeleitet werden

Zusätzlich zu den Rahmenfenstern werden mehrere andere Hauptkategorien von Fenstern von CWnd abgeleitet:

  • Ansichten
    Ansichten werden mit der von der CWnd-Klasse abgeleiteten CView-Klasse erstellt (oder mit einer ihrer abgeleiteten Klassen). Eine Ansicht wird an ein Dokument angefügt und dient als Vermittler zwischen dem Dokument und dem Benutzer. Eine Ansicht ist ein untergeordnetes Fenster (kein untergeordnetes MDI-Fenster), das normalerweise den Clientbereich eines SDI-Rahmenfensters oder eines untergeordneten MDI-Rahmenfensters ausfüllt (oder den Teil des Clientbereichs, der nicht von einer Symbolleiste und/oder einer Statusleiste abgedeckt ist).

  • Dialogfelder
    Dialogfelder werden mithilfe der von CWnd abgeleiteten Klasse CDialog erstellt.

  • Formulare
    Formularansichten auf Grundlage von Dialogfeld-Vorlagenressourcen, zum Beispiel Dialogfelder, werden mithilfe der Klassen CFormView, CRecordView oder CDaoRecordView erstellt.

  • Steuerelemente
    Steuerelemente wie Schaltflächen, Listenfelder und Kombinationsfelder werden mithilfe anderer Klassen erstellt, die von CWnd abgeleitet werden. Weitere Informationen erhalten Sie in den Themen zu Steuerelementen.

  • Steuerleisten
    Untergeordnete Fenster, die Steuerelemente enthalten. Dazu zählen beispielsweise Symbolleisten und Statusleisten. Weitere Informationen erhalten Sie unter Steuerleisten.

Fensterklassenhierarchie

Sehen Sie sich hierzu das MFC-Hierarchiediagramm in der MFC-Referenz an. Ansichten werden unter Dokument-/Ansichtarchitektur erläutert. Dialogfelder werden unter Dialogfelder erläutert.

Erstellen eigener Fensterklassen für spezielle Zwecke

Neben den Fensterklassen, die von der Klassenbibliothek bereitgestellt werden, benötigen Sie möglicherweise untergeordnete Fenster für besondere Zwecke. Um ein solches Fenster zu erzeugen, erstellen Sie eine eigene, von CWnd abgeleitete Klasse als untergeordnetes Fenster von einem Frame oder einer Ansicht. Bedenken Sie, dass das Framework den Umfang des Clientbereichs von einem Dokumentrahmenfenster verwaltet. Die Großteil des Clientbereichs wird durch eine Ansicht verwaltet, aber andere Fenster, z. B. Steuerleisten oder eigene, benutzerdefinierte Fenster, können sich den Platz mit der Ansicht teilen. Sie müssen möglicherweise mit den Mechanismen in den Klassen CView und CControlBar interagieren, um untergeordnete Fenster im Clientbereich eines Rahmenfensters zu positionieren.

Unter Erstellen von Fenstern finden Sie eine Erläuterung zur Erstellung von Fensterobjekten und den Fenstern, die sie verwalten.

Siehe auch

Konzepte

Fensterobjekte