Freigeben über


Abgeleitete Fensterklassen

Sie können Fenster direkt von CWndoder von CWndneuen Fensterklassen ableiten. So erstellen Sie in der Regel eigene benutzerdefinierte Fenster. Die meisten Fenster, die in einem Programm in einem Framework verwendet werden, werden jedoch aus einer der von MFC bereitgestellten, CWnd-abgeleiteten Framefensterklassen erstellt.

Rahmenfensterklassen

CFrameWnd
Wird für SDI-Rahmenfenster verwendet, die ein einzelnes Dokument und seine Ansicht framen. 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 teilt die Menüleiste mit ihnen. 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 wurden. 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. Im MDI-Unterfenster fehlt jedoch eine eigene Menüleiste. Sie muss die Menüleiste des sie enthaltenden MDI-Framefensters übernehmen.

Weitere Informationen finden Sie unter Framefenster.

Andere Fensterklassen, die von CWnd abgeleitet sind

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

  • Ansichten:
    Ansichten werden mithilfe der CWndabgeleiteten Klasse CView (oder einer der abgeleiteten Klassen) erstellt. Eine Ansicht ist an ein Dokument angefügt und fungiert als Vermittler zwischen dem Dokument und dem Benutzer. Eine Ansicht ist ein untergeordnetes Fenster (kein untergeordnetes MDI-Fenster), das in der Regel den Client-Bereich eines SDI-Frame-Fensters oder eines untergeordneten MDI-Frame-Fensters (oder den Teil des Client-Bereichs, der nicht von einer Symbolleiste oder einer Statusleiste abgedeckt wird) ausfüllt.

  • Dialogfelder:
    Dialogfelder werden mithilfe der CWndabgeleiteten Klasse CDialogerstellt.

  • Formulare:
    Formularansichten, die auf Dialogvorlagen-Ressourcen basieren, wie z. B. Dialogfelder, werden mithilfe von 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 finden Sie unter "Steuerungsthemen".

  • Steuerleisten:
    Untergeordnete Fenster, die Steuerelemente enthalten. Beispiele sind Symbolleisten und Statusleisten. Siehe Steuerleisten.

Fensterklassenhierarchie

Weitere Informationen finden Sie im MFC-Hierarchiediagramm in der MFC-Referenz. Ansichten werden in der Dokument-/Ansichtsarchitektur erläutert. Dialogfelder werden in Dialogfeldern 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 erstellen, erstellen Sie eine eigene CWndabgeleitete Klasse, und machen Sie sie zu einem untergeordneten Fenster eines Frames oder einer Ansicht. Denken Sie daran, dass das Framework den Umfang des Clientbereichs eines Dokumentrahmenfensters verwaltet. Der großteil des Clientbereichs wird von einer Ansicht verwaltet, andere Fenster, z. B. Steuerleisten oder eigene benutzerdefinierte Fenster, können den Bereich jedoch mit der Ansicht teilen. Möglicherweise müssen Sie mit den Mechanismen in Klassen CView und CControlBar zum Positionieren von untergeordneten Fenstern im Clientbereich eines Rahmenfensters interagieren.

Beim Erstellen von Fenstern werden die Erstellung von Fensterobjekten und die von ihnen verwalteten Fenster erörtert.

Siehe auch

Window-Objekte