Abgeleitete Fensterklassen

Sie können Fenster direkt von CWndoder von CWndneuen Fensterklassen ableiten. So erstellen Sie in der Regel eigene benutzerdefinierte Fenster. Allerdings werden die meisten Fenster, die in einem Frameworkprogramm verwendet werden, stattdessen aus einer der von MFC bereitgestellten, von CWnd abgeleiteten Rahmenfensterklassen erstellt.

Rahmenfensterklassen

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. Das untergeordnete MDI-Fenster verfügt jedoch über eine eigene Menüleiste. Sie muss die Menüleiste des MDI-Framefensters freigeben, das es enthält.

Weitere Informationen finden Sie unter Framefenster.

Andere Fensterklassen, die von CWnd

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

  • Ansichten:
    Ansichten werden mithilfe der CWndabgeleiteten Klasse CView (oder einer der abgeleiteten Klassen) erstellt. 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-Element), das in der Regel den Clientbereich eines SDI-Rahmenfensters oder eines untergeordneten MDI-Rahmenfensters (oder diesen Teil des Clientbereichs, der nicht von einer Symbolleiste oder einer Statusleiste abgedeckt wird) ausfüllt.

  • Dialogfelder:
    Dialogfelder werden mithilfe der CWndabgeleiteten Klasse CDialogerstellt.

  • Formulare:
    Formularansichten basierend auf Ressourcen von Dialogfeldvorlagen, z. B. Dialogfeldern, werden mithilfe von Klassen CFormView, CRecordViewoder CDaoRecordView.

  • Steuerung:
    Steuerelemente wie Schaltflächen, Listenfelder und Kombinationsfelder werden mithilfe anderer Klassen erstellt, die von CWnd abgeleitet werden. Weitere Informationen finden Sie unter "Steuerelementthemen".

  • Steuerleisten:
    Untergeordnete Fenster, die Steuerelemente enthalten. Dazu zählen beispielsweise 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. 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. Möglicherweise müssen Sie mit den Mechanismen in Klassen CView interagieren und CControlBar untergeordnete Fenster im Clientbereich eines Framefensters positionieren.

Beim Erstellen von Fenstern wird die Erstellung von Fensterobjekten und die von ihnen verwalteten Fenster erläutert.

Siehe auch

Window-Objekte