Derived Window Classes

OverviewHow Do ITutorial

You can create windows directly from , or derive new window classes from CWnd. This is how you typically create your own child windows. However, most windows used in a framework program are instead created from one of the CWnd-derived frame-window classes supplied by MFC.

Frame Window Classes

Used for SDI frame windows that frame a single document and its view. The frame window is both the main frame window for the application and the frame window for the current document.

Used as the main frame window for MDI applications. The main frame window is a container for all MDI document windows and shares its menu bar with them. An MDI frame window is a top-level window that appears on the desktop.

Used for individual documents opened in an MDI main frame window. Each document and its view are framed by an MDI child frame window contained by the MDI main frame window. An MDI child window looks much like a typical frame window but is contained inside an MDI frame window instead of sitting on the desktop. However, the MDI child window lacks a menu bar of its own and must share the menu bar of the MDI frame window that contains it.

For more information, see Frame Windows.

Other Window Classes Derived from CWnd

In addition to frame windows, several other major categories of windows are derived from CWnd:

Views

Views are created using the CWnd-derived class (or one of its derived classes). A view is attached to a document and acts as an intermediary between the document and the user. A view is a child window (not an MDI child) that typically fills the client area of an SDI frame window or an MDI child frame window (or that portion of the client area not covered by a toolbar and/or a status bar).

Dialog Boxes

Dialog boxes are created using the CWnd-derived class .

Forms

Form views based on dialog-template resources, such as dialog boxes, are created using classes , , or .

Controls

Controls such as buttons, list boxes, and combo boxes are created using other classes derived from CWnd. See Controls: Overview.

Control Bars

Child windows that contain controls. Examples include toolbars and status bars. See Control Bars: Overview.

Window Class Hierarchy

Refer to the in the Class Library Reference. Views are explained in Document/View: Overview. Dialog boxes are explained in Dialog Boxes: Overview.

Creating Your Own Special-Purpose Window Classes

In addition to the window classes provided by the class library, you may need special-purpose child windows. To create such a window, write your own -derived class and make it a child window of a frame or view. Bear in mind that the framework manages the extent of the client area of a document frame window. Most of the client area is managed by a view, but other windows, such as control bars or your own custom windows, may share the space with the view. You may need to interact with the mechanisms in classes and for positioning child windows in a frame window’s client area.

Creating Windows discusses creation of window objects and the Windows windows they manage.