MFC Classes

The classes in the following list are included in the Microsoft Foundation Class (MFC) Library.

Tip

For information about CStringT and other classes that are common to both MFC and ATL programming, see Classes Shared by MFC and ATL.

Important

The MFC classes and their members cannot be used in applications that execute in the Windows Runtime.

In This Section

CAccelerateDecelerateTransition Class
Implements an accelerate-decelerate transition.

CAnimateCtrl Class
Provides the functionality of the Windows common animation control.

CAnimationBaseObject Class
The base class for all animation objects.

CAnimationColor Class
Implements the functionality of a color whose red, green, and blue components can be animated.

CAnimationController Class
Implements the animation controller, which provides a central interface for creating and managing animations.

CAnimationGroup Class
Implements the animation controller, which provides a central interface for creating and managing animations.

CAnimationManagerEventHandler Class
Implements a callback, which is called by the Animation API when a status of an animation manager is changed.

CAnimationPoint Class
Implements the functionality of a point whose coordinates can be animated.

CAnimationRect Class
Implements the functionality of a rectangle whose sides can be animated.

CAnimationSize Class
Implements the functionality of a size object whose dimensions can be animated.

CAnimationStoryboardEventHandler Class
Implements a callback, which is called by the Animation API when the status of a storyboard is changed or a storyboard is updated.

CAnimationTimerEventHandler Class
Implements a callback, which is called by the Animation API when timing events occur.

CAnimationValue Class
Implements the functionality of animation object that has one value.

CAnimationVariable Class
Represents an animation variable.

CAnimationVariableChangeHandler Class
Implements a callback, which is called by the Animation API when the value of an animation variable changes.

CAnimationVariableIntegerChangeHandler Class
Implements a callback, which is called by the Animation API when the value of an animation variable changes.

CArchive Class
Lets you save a complex network of objects in a permanent binary form (usually disk storage) that persists after those objects are deleted.

CArchiveException Class
Represents a serialization exception condition.

CArray Class
Supports arrays that resemble` C arrays, but can dynamically reduce and grow as necessary.

CAsyncMonikerFile Class
Provides functionality for the use of asynchronous monikers in ActiveX controls (formerly OLE controls).

CAsyncSocket Class
Represents a Windows Socket, which is an endpoint of network communication.

CAutoHideDockSite Class
Extends the CDockSite Class to implement auto-hide dock panes.

CBaseKeyFrame Class
Implements the basic functionality of a keyframe.

CBasePane Class
Base class for all panes.

CBaseTabbedPane Class
Extends the functionality of the CDockablePane Class to support the creation of tabbed windows.

CBaseTransition Class
Represents a basic transition.

CBitmap Class
Encapsulates a Windows graphics device interface (GDI) bitmap and provides member functions to manipulate the bitmap.

CBitmapButton Class
Creates pushbutton controls labeled with bitmapped images instead of text.

CBitmapRenderTarget Class
A wrapper for ID2D1BitmapRenderTarget.

CBrush Class
Encapsulates a Windows graphics device interface (GDI) brush.

CButton Class
Provides the functionality of Windows button controls.

CByteArray Class
Supports dynamic arrays of bytes.

CCachedDataPathProperty Class
Implements an OLE control property transferred asynchronously and cached in a memory file.

CCheckListBox Class
Provides the functionality of a Windows checklist box.

CClientDC Class
Handles the calling of the Windows functions GetDC at construction time and ReleaseDC at destruction time.

CCmdTarget Class
Base class for the Microsoft Foundation Class Library message-map architecture.

CCmdUI Class
Used only within an ON_UPDATE_COMMAND_UI handler in a CCmdTarget-derived class.

CColorDialog Class
Lets you incorporate a color-selection dialog box into your application.

CComboBox Class
Provides the functionality of a Windows combo box.

CComboBoxEx Class
Extends the combo box control by providing support for image lists.

CCommandLineInfo Class
Aids in parsing the command line at application startup.

CCommonDialog Class
The base class for classes that encapsulate functionality of the Windows common dialogs.

CConnectionPoint Class
Defines a special type of interface used to communicate with other OLE objects, called a "connection point."

CConstantTransition Class
Encapsulates a constant transition.

CContextMenuManager Class
Manages shortcut menus, also known as context menus.

CControlBar Class
Base class for the control-bar classes CStatusBar Class, CToolBar Class, CDialogBar Class, CReBar Class, and COleResizeBar Class.

CCriticalSection Class
Represents a "critical section", which is a synchronization object that enables one thread at a time to access a resource or section of code.

CCtrlView Class
Adapts the document-view architecture to the common controls supported by Windows 98 and Windows NT versions 3.51 and later.

CCubicTransition Class
Encapsulates a cubic transition.

CCustomInterpolator Class
Implements a basic interpolator.

CCustomTransition Class
Implements a custom transition.

CD2DBitmap Class
A wrapper for ID2D1Bitmap.

CD2DBitmapBrush Class
A wrapper for ID2D1BitmapBrush.

CD2DBrush Class
A wrapper for ID2D1Brush.

CD2DBrushProperties Class
A wrapper for D2D1_BRUSH_PROPERTIES.

CD2DEllipse Class
A wrapper for D2D1_BRUSH_PROPERTIES.

CD2DGeometry Class
A wrapper for ID2D1Geometry.

CD2DGeometrySink Class
A wrapper for ID2D1GeometrySink.

CD2DGradientBrush Class
The base class of the CD2DLinearGradientBrush and the CD2DRadialGradientBrush classes.

CD2DLayer Class
A wrapper for ID2D1Layer.

CD2DLinearGradientBrush Class
A wrapper for ID2D1LinearGradientBrush.

CD2DMesh Class
A wrapper for ID2D1Mesh.

CD2DPathGeometry Class
A wrapper for ID2D1PathGeometry.

CD2DPointF Class
A wrapper for D2D1_POINT_2F.

CD2DPointU Class
A wrapper for D2D1_POINT_2U.

CD2DRadialGradientBrush Class
A wrapper for ID2D1RadialGradientBrush.

CD2DRectF Class
A wrapper for D2D1_RECT_F.

CD2DRectU Class
A wrapper for D2D1_RECT_U.

CD2DResource Class
An abstract class that provides an interface for creating and managing D2D resources such as brushes, layers, and texts.

CD2DRoundedRect Class
A wrapper for D2D1_ROUNDED_RECT.

CD2DSizeF Class
A wrapper for D2D1_SIZE_F.

CD2DSizeU Class
A wrapper for D2D1_SIZE_U.

CD2DSolidColorBrush Class
A wrapper for ID2D1SolidColorBrush.

CD2DTextFormat Class
A wrapper for IDWriteTextFormat.

CD2DTextLayout Class
A wrapper for IDWriteTextLayout.

CDaoDatabase Class
Represents a connection to a database through which you can operate on the data.

CDaoException Class
Represents an exception condition arising from the MFC database classes based on data access objects (DAO).

CDaoFieldExchange Class
Supports the DAO record field exchange (DFX) routines used by the DAO database classes.

CDaoQueryDef Class
Represents a query definition, or "querydef," usually one saved in a database.

CDaoRecordset Class
Represents a set of records selected from a data source.

CDaoRecordView Class
A view that displays database records in controls.

CDaoTableDef Class
Represents the stored definition of a base table or an attached table.

CDaoWorkspace Class
Manages a named, password-protected database session from login to logoff, by a single user.

CDatabase Class
Represents a connection to a data source, through which you can operate on the data source.

CDataExchange Class
Supports the dialog data exchange (DDX) and dialog data validation (DDV) routines used by the Microsoft Foundation classes.

CDataPathProperty Class
Implements an OLE control property that can be loaded asynchronously.

CDataRecoveryHandler Class
Autosaves documents and restores them if an application unexpectedly exits.

CDateTimeCtrl Class
Encapsulates the functionality of a date and time picker control.

CDBException Class
Represents an exception condition arising from the database classes.

CDBVariant Class
Represents a variant data type for the MFC ODBC classes.

CDC Class
Defines a class of device-context objects.

CDCRenderTarget Class
A wrapper for ID2D1DCRenderTarget.

CDHtmlDialog Class
Used to create dialog boxes that use HTML rather than dialog resources to implement their user interface.

CDialog Class
Base class used for displaying dialog boxes on the screen.

CDialogBar Class
Provides the functionality of a Windows modeless dialog box in a control bar.

CDialogEx Class
Specifies the background color and background image of a dialog box.

CDiscreteTransition Class
Encapsulates a discrete transition.

CDocItem Class
The base class for document items, which are components of a document's data.

CDockablePane Class
Implements a pane that can either be docked in a dock site or included in a tabbed pane.

CDockablePaneAdapter Class
Provides docking support for CWnd-derived panes.

CDockingManager Class
Implements the core functionality that controls docking layout in a main frame window.

CDockingPanesRow Class
Manages a list of panes that are located in the same horizontal or vertical row (column) of a dock site.

CDockSite Class
Provides functionality for arranging panes that are derived from the CPane Class into sets of rows.

CDockState Class
A serialized CObject class that loads, unloads, or clears the state of one or more docking control bars in persistent memory (a file).

CDocObjectServer Class
Implements the additional OLE interfaces needed to make a normal COleDocument server into a full DocObject server: IOleDocument, IOleDocumentView, IOleCommandTarget, and IPrint.

CDocObjectServerItem Class
Implements OLE server verbs specifically for DocObject servers.

CDocTemplate Class
An abstract base class that defines the basic functionality for document templates.

CDocument Class
Provides the basic functionality for user-defined document classes.

CDragListBox Class
In addition to providing the functionality of a Windows list box, the CDragListBox class lets the user move list box items, such as filenames, within the list box.

CDrawingManager Class
Implements complex drawing algorithms.

CDumpContext Class
Supports stream-oriented diagnostic output in the form of human-readable text.

CDWordArray Class
Supports arrays of 32-bit doublewords.

CEdit Class
Provides the functionality of a Windows edit control.

CEditView Class
A type of view class that provides the functionality of a Windows edit control and can be used to implement simple text-editor functionality.

CEvent Class
Represents an "event", which is a synchronization object that enables one thread to notify another that an event has occurred.

CException Class
The base class for all exceptions in the Microsoft Foundation Class Library.

CFieldExchange Class
Supports the record field exchange (RFX) and bulk record field exchange (Bulk RFX) routines used by the database classes.

CFile Class
The base class for Microsoft Foundation Class file classes.

CFileDialog Class
Encapsulates the common file dialog box for Windows.

CFileException Class
Represents a file-related exception condition.

CFileFind Class
Performs local file searches and is the base class for CGopherFileFind Class and CFtpFileFind Class, which perform Internet file searches.

CFindReplaceDialog Class
Lets you implement standard string Find/Replace dialog boxes in your application.

CFolderPickerDialog Class
Implements CFileDialog in the folder picker mode.

CFont Class
Encapsulates a Windows graphics device interface (GDI) font and provides member functions for manipulating the font.

CFontDialog Class
Lets you incorporate a font-selection dialog box into your application.

CFontHolder Class
Implements the stock Font property and encapsulates the functionality of a Windows font object and the IFont interface.

CFormView Class
The base class used for form views.

CFrameWnd Class
Provides the functionality of a Windows single document interface (SDI) overlapped or pop-up frame window, along with members for managing the window.

CFrameWndEx Class
Implements the functionality of a Windows single document interface (SDI) overlapped or popup frame window, and provides members for managing the window. It extends the CFrameWnd Class class.

CFtpConnection Class
Manages your FTP connection to an Internet server and enables direct manipulation of directories and files on that server.

CFtpFileFind Class
Aids in Internet file searches of FTP servers.

CGdiObject Class
Provides a base class for various kinds of Windows graphics device interface (GDI) objects such as bitmaps, regions, brushes, pens, palettes, and fonts.

CGopherConnection Class
Manages your connection to a gopher Internet server.

CGopherFile Class
Provides the functionality to find and read files on a gopher server.

CGopherFileFind Class
Aids in Internet file searches of gopher servers.

CGopherLocator Class
Gets a gopher "locator" from a gopher server, determines the locator's type, and makes the locator available to CGopherFileFind Class.

CHeaderCtrl Class
Provides the functionality of the Windows common header control.

CHotKeyCtrl Class
Provides the functionality of the Windows common hot key control.

CHtmlEditCtrl Class
Provides the functionality of the WebBrowser ActiveX control in an MFC window.

CHtmlEditCtrlBase Class
Represents an HTML editing component.

CHtmlEditDoc Class
With CHtmlEditView Class, provides the functionality of the WebBrowser editing platform within the context of the MFC document-view architecture.

CHtmlEditView Class
Provides the functionality of the WebBrowser editing platform within the context of MFC's document/view architecture.

CHtmlView Class
Provides the functionality of the WebBrowser control within the context of MFC's document/view architecture.

CHttpConnection Class
Manages your connection to an HTTP server.

CHttpFile Class
Provides the functionality to request and read files on an HTTP server.

CHwndRenderTarget Class
A wrapper for ID2D1HwndRenderTarget.

CImageList Class
Provides the functionality of the Windows common image list control.

CInstantaneousTransition Class
Encapsulates an instantaneous transition.

CInternetConnection Class
Manages your connection to an Internet server.

CInternetException Class
Represents an exception condition related to an Internet operation.

CInternetFile Class
Enables access to files on remote systems that use Internet protocols.

CInternetSession Class
Creates and initializes a single or several simultaneous Internet sessions and, if necessary, describes your connection to a proxy server.

CInterpolatorBase Class
Implements a callback, which is called by the Animation API when it has to calculate a new value of an animation variable.

CInvalidArgException Class
This class represents an invalid argument exception condition.

CIPAddressCtrl Class
Provides the functionality of the Windows common IP Address control.

CJumpList Class
The list of shortcuts revealed when you right click on an icon in the task bar.

CKeyboardManager Class
Manages shortcut key tables for the main frame window and child frame windows.

CKeyFrame Class
Represents an animation keyframe.

CLinearTransition Class
Encapsulates a linear transition.

CLinearTransitionFromSpeed Class
Encapsulates a linear-speed transition.

CLinkCtrl Class
Provides the functionality of the Windows common SysLink control.

CList Class
Supports ordered lists of nonunique objects accessible sequentially or by value.

CListBox Class
Provides the functionality of a Windows list box.

CListCtrl Class
Encapsulates the functionality of a "list view control," which displays a collection of items each consisting of an icon (from an image list) and a label.

CListView Class
Simplifies use of the list control and of CListCtrl Class, the class that encapsulates list-control functionality, with MFC's document-view architecture.

CLongBinary Class
Simplifies working with very large binary data objects (often called BLOBs, or "binary large objects") in a database.

CMap Class
A dictionary collection class that maps unique keys to values.

CMapPtrToPtr Class
Supports maps of void pointers keyed by void pointers.

CMapPtrToWord Class
Supports maps of 16-bit words keyed by void pointers.

CMapStringToOb Class
A dictionary collection class that maps unique CString objects to CObject pointers.

CMapStringToPtr Class
Supports maps of void pointers keyed by CString objects.

CMapStringToString Class
Supports maps of CString objects keyed by CString objects.

CMapWordToOb Class
Supports maps of CObject pointers keyed by 16-bit words.

CMapWordToPtr Class
Supports maps of void pointers keyed by 16-bit words.

CMDIChildWnd Class
Provides the functionality of a Windows multiple document interface (MDI) child window, along with members for managing the window.

CMDIChildWndEx Class
Provides the functionality of a Windows multiple document interface (MDI) child window. It extends the functionality of CMDIChildWnd Class. The framework requires this class when an MDI application uses certain MFC classes.

CMDIFrameWnd Class
Provides the functionality of a Windows multiple document interface (MDI) frame window, along with members for managing the window.

CMDIFrameWndEx Class
Extends the functionality of CFrameWnd Class, a Windows Multiple Document Interface (MDI) frame window.

CMDITabInfo Class
Used to pass parameters to CMDIFrameWndEx::EnableMDITabbedGroups method. Set members of this class to control the behavior of MDI tabbed groups.

CMemFile Class
The CFile Class-derived class that supports memory files.

CMemoryException Class
Represents an out-of-memory exception condition.

CMenu Class
An encapsulation of the Windows HMENU.

CMenuTearOffManager Class
Manages tear-off menus. A tear-off menu is a menu on the menu bar. The user can remove a tear-off menu from the menu bar, causing the tear-off menu to float.

CMetaFileDC Class
Implements a Windows metafile, which contains a sequence of graphics device interface (GDI) commands that you can replay to create a desired image or text.

CMFCAcceleratorKey Class
Helper class that implements virtual key mapping and formatting.

CMFCAcceleratorKeyAssignCtrl Class
Extends the CEdit Class to support extra system buttons such as ALT, CONTROL, and SHIFT.

CMFCAutoHideButton Class
A button that displays or hides a CDockablePane Class that is configured to hide.

CMFCBaseTabCtrl Class
Implements the base functionality for tabbed windows.

CMFCButton Class
Adds functionality to the CButton Class class such as aligning button text, combining button text and an image, selecting a cursor, and specifying a tool tip.

CMFCCaptionBar Class
Control bar that can display three elements: a button, a text label, and a bitmap. It can only display one element of each type at a time. You can align each element to the left or right edges of the control or to the center. You can also apply a flat or 3D style to the top and bottom borders of the caption bar.

CMFCCaptionButton Class
Implements a button that is displayed on the caption bar for a docking pane or a mini-frame window. Typically, the framework creates caption buttons automatically.

CMFCColorBar Class
Represents a docking control bar that can select colors in a document or application.

CMFCColorButton Class
The CMFCColorButton and CMFCColorBar Class classes are used together to implement a color picker control.

CMFCColorDialog Class
Represents a color selection dialog box.

CMFCColorMenuButton Class
Supports a menu command or a toolbar button that starts a color picker dialog box.

CMFCColorPickerCtrl Class
Provides functionality for a control that is used to select colors.

CMFCDesktopAlertDialog Class
Used together with the CMFCDesktopAlertWnd Class to display a custom dialog in a popup window.

CMFCDesktopAlertWnd Class
Implements the functionality of a modeless dialog box which appears on the screen to inform the user about an event.

CMFCDesktopAlertWndInfo Class
Used with the CMFCDesktopAlertWnd Class. It specifies the controls that are displayed if the desktop alert window pops up.

CMFCDragFrameImpl Class
Draws the drag rectangle that appears when the user drags a pane in the standard dock mode.

CMFCDropDownToolBar Class
A toolbar that appears when the user presses and holds a top-level toolbar button.

CMFCDropDownToolbarButton Class
A type of toolbar button that behaves like a regular button when it is clicked. However, it opens a drop-down toolbar (CMFCDropDownToolBar Class if the user presses and holds the toolbar button down.

CMFCDynamicLayout Class
Specifies how controls in a window are moved and resized as the user resizes the window.

CMFCEditBrowseCtrl Class
Supports the edit browse control, which is an editable text box that optionally contains a browse button. When the user clicks the browse button, the control performs a custom action or displays a standard dialog box that contains a file browser or a folder browser.

CMFCFilterChunkValueImpl Class
Simplifies both chunk and property value pair logic.

CMFCFontComboBox Class
Creates a combo box control that contains a list of fonts.

CMFCFontInfo Class
Describes the name and other attributes of a font.

CMFCHeaderCtrl Class
Supports sorting multiple columns in a header control.

CMFCImageEditorDialog Class
Supports an image editor dialog box.

CMFCKeyMapDialog Class
Supports a control that maps commands to keys on the keyboard.

CMFCLinkCtrl Class
Displays a button as a hyperlink and invokes the link's target when the button is clicked.

CMFCListCtrl Class
Extends the functionality of CListCtrl Class class by supporting the advanced header control functionality of the CMFCHeaderCtrl Class.

CMFCMaskedEdit Class
Supports a masked edit control, which validates user input against a mask and displays the validated results according to a template.

CMFCMenuBar Class
A menu bar that implements docking.

CMFCMenuButton Class
A button that displays a pop-up menu and reports on the user's menu selections.

CMFCOutlookBar Class
A tabbed pane with the visual appearance of the Navigation Pane in Microsoft Outlook 2000 or Outlook 2003. The CMFCOutlookBar object contains a CMFCOutlookBarTabCtrl Class object and a series of tabs. The tabs can be either CMFCOutlookBarPane Class objects or CWnd-derived objects. To the user, the Outlook bar appears as a series of buttons and a display area. When the user clicks a button, the corresponding control or button pane is displayed.

CMFCOutlookBarPane Class
A control derived from CMFCToolBar Class that can be inserted into an Outlook bar (CMFCOutlookBar Class). The Outlook bar pane contains a column of large buttons. The user can scroll up and down the list of buttons if it is larger than the pane. When the user detaches an Outlook bar pane from the Outlook bar, it can float or dock in the main frame window.

CMFCOutlookBarTabCtrl Class
A tab control that has the visual appearance of the Navigation Pane in Microsoft Outlook.

CMFCPopupMenu Class
Implements Windows pop-up menu functionality and extends it by adding features such as tear-off menus and tooltips.

CMFCPopupMenuBar Class
A menu bar embedded into a pop-up menu.

CMFCPreviewCtrlImpl Class
Implements a window that is placed on a host window provided by the Shell for Rich Preview.

CMFCPropertyGridColorProperty Class
Supports a property list control item that opens a color selection dialog box.

CMFCPropertyGridCtrl Class
Supports an editable property grid control that can display properties in alphabetical or hierarchical order.

CMFCPropertyGridFileProperty Class
Supports a property list control item that opens a file selection dialog box.

CMFCPropertyGridFontProperty Class
Supports a property list control item that opens a font selection dialog box.

CMFCPropertyGridProperty Class
Represents a list item in a property list control.

CMFCPropertyPage Class
Supports the display of pop-up menus on a property page.

CMFCPropertySheet Class
Supports a property sheet where each property page is denoted by a page tab, a toolbar button, a tree control node, or a list item.

CMFCReBar Class
Control bar that provides layout, persistence, and state information for rebar controls.

CMFCRibbonApplicationButton Class
Implements a special button located in the top-left corner of the application window. When clicked, the button opens a menu that usually contains common File commands like Open, Save, and Exit.

CMFCRibbonBaseElement Class
Base class for all elements that you can add to a CMFCRibbonBar Class. Examples of ribbon elements are ribbon buttons, ribbon check boxes, and ribbon combo boxes.

CMFCRibbonButton Class
Implements buttons that you can position on ribbon bar elements such as panels, Quick Access Toolbars, and pop-up menus.

CMFCRibbonButtonsGroup Class
Lets you organize a set of ribbon buttons into a group. All buttons in the group are directly adjacent to each other horizontally and enclosed in a border.

CMFCRibbonCategory Class
Implements a ribbon tab that contains a group of CMFCRibbonPanel Class.

CMFCRibbonCheckBox Class
Implements a check box that you can add to a ribbon panel, Quick Access Toolbar, or popup menu.

CMFCRibbonColorButton Class
Implements a color button that you can add to a ribbon bar. The ribbon color button displays a drop-down menu that contains one or more color palettes.

CMFCRibbonComboBox Class
Implements a combo box control that you can add to a ribbon bar, a ribbon panel, or a ribbon popup menu.

CMFCRibbonContextCaption Class
Implements a colored caption that appears at the top of a ribbon category or a context category.

CMFCRibbonEdit Class
Implements an edit control that is positioned on a ribbon.

CMFCRibbonFontComboBox Class
Implements a combo box that contains a list of fonts. You place the combo box on a ribbon panel.

CMFCRibbonGallery Class
Implements Office 2007-style ribbon galleries.

CMFCRibbonGalleryMenuButton Class
Implements a ribbon menu button that contains ribbon galleries.

CMFCRibbonLabel Class
Implements a non-clickable text label for a ribbon.

CMFCRibbonLinkCtrl Class
Implements a hyperlink that is positioned on a ribbon. The hyperlink opens a Web page when you click it.

CMFCRibbonMainPanel Class
Implements a ribbon panel that displays when you click the CMFCRibbonApplicationButton Class.

CMFCRibbonMiniToolBar Class
Implements a contextual popup toolbar.

CMFCRibbonPanel Class
Implements a panel that contains a set of ribbon elements. When the panel is drawn, it displays as many elements as possible, given the size of the panel.

CMFCRibbonProgressBar Class
Implements a control that visually indicates the progress of a lengthy operation.

CMFCRibbonSlider Class
Implements a slider control that you can add to a ribbon bar or ribbon status bar. The ribbon slider control resembles the zoom sliders that appear in Office 2007 applications.

CMFCRibbonStatusBar Class
Implements a status bar control that can display ribbon elements.

CMFCRibbonStatusBarPane Class
Implements a ribbon element that you can add to a ribbon status bar.

CMFCRibbonUndoButton Class
Implements a split button, a small button with a downward pointing triangle on the rightmost part of the main button. Users can click the triangle to display a drop-down list of their most recently performed actions. Users can then select one or more actions from the drop-down list. However, if the user clicks the button, only the last (the most recently added) action on the drop-down list is undone. You should populate the list with actions as the user performs them.

CMFCShellListCtrl Class
Provides Windows list control functionality and expands it by including the ability to display a list of shell items.

CMFCShellTreeCtrl Class
Extends CTreeCtrl Class functionality by displaying a hierarchy of Shell items.

CMFCSpinButtonCtrl Class
Supports a visual manager that draws a spin button control.

CMFCStatusBar Class
Implements a status bar similar to the CStatusBar class. However, the CMFCStatusBar class has features not offered by the CStatusBar class, such as the ability to display images, animations, and progress bars; and the ability to respond to mouse double-clicks.

CMFCTabCtrl Class
Provides functionality for a tab control. The tab control displays a dockable window with flat or three-dimensional tabs at its top or bottom. The tabs can display text and an image and can change color when active.

`CMFCTabToolTipInfo Structure
Provides information about the MDI tab that the user is hovering over.

CMFCTasksPane Class
Implements a list of clickable items (tasks).

CMFCTasksPaneTask Class
Helper class that represents tasks for the task pane control (CMFCTasksPane Class). The task object represents an item in the task group (CMFCTasksPaneTaskGroup Class). Each task can have a command that the framework executes when a user clicks on the task and an icon that appears to the left of the task name.

CMFCTasksPaneTaskGroup Class
Helper class used by the CMFCTasksPane Class control. Objects of type CMFCTasksPaneTaskGroup represent a task group. The task group is a list of items that the framework displays in a separate box that has a collapse button. The box can have an optional caption (group name). If a group is collapsed, the list of tasks is not visible.

CMFCToolBar Class
Resembles CToolBar Class, but provides additional support for user interface features. These include flat toolbars, toolbars with hot images, large icons, pager buttons, locked toolbars, rebar controls, text under images, background images, and tabbed toolbars. The CMFCToolBar class also contains built-in support for user customization of toolbars and menus, drag-and-drop between toolbars and menus, combo box buttons, edit box buttons, color pickers, and roll-up buttons.

CMFCToolBarImages Class
Manages toolbar images loaded from application resources or from files.

CMFCToolBarInfo Class
Contains the resource IDs of toolbar images in various states. CMFCToolBarInfo is a helper class that is used as a parameter of the CMFCToolBar::LoadToolBarEx method.

CMFCToolBarMenuButton Class
A toolbar button that contains a pop-up menu.

CMFCToolBarsCustomizeDialog Class
A modeless tab dialog box (CPropertySheet Class) that enables the user to customize the toolbars, menus, keyboard shortcuts, user-defined tools, and visual style in an application. Typically, the user accesses this dialog box by selecting Customize from the Tools menu.

CMFCToolTipCtrl Class
An extended tooltip implementation based on the CToolTipCtrl Class. A tooltip based on the CMFCToolTipCtrl class can display an icon, a label, and a description. You can customize its visual appearance by using a gradient fill, custom text and border colors, bold text, rounded corners, or a balloon style.

CMFCToolTipInfo Class
Stores information about the visual appearance of tooltips.

CMFCVisualManager Class
Provides support for changing the appearance of your application at a global level. The CMFCVisualManager class works together with a class that provides instructions to draw the GUI controls of your application using a consistent style. These other classes are referred to as visual managers and they inherit from CMFCBaseVisualManager.

CMFCVisualManagerOffice2003 Class
Gives an application a Microsoft Office 2003 appearance.

CMFCVisualManagerOffice2007 Class
Gives an application a Microsoft Office 2007 appearance.

CMFCVisualManagerVS2005 Class
Gives an application a Microsoft Visual Studio 2005 appearance.

CMFCVisualManagerWindows Class
Mimics the appearance of Microsoft Windows XP or Microsoft Vista when the user selects a Windows XP or Vista theme.

CMFCVisualManagerWindows7 Class
Gives an application the appearance of a Windows 7 application.

CMFCWindowsManagerDialog Class
Enables a user to manage MDI child windows in an MDI application.

CMiniFrameWnd Class
Represents a half-height frame window typically seen around floating toolbars.

CMonikerFile Class
Represents a stream of data (IStream) named by an IMoniker.

CMonthCalCtrl Class
Encapsulates the functionality of a month calendar control.

CMouseManager Class
Lets a user associate different commands with a particular CView Class object when the user double-clicks inside that view.

CMultiDocTemplate Class
Defines a document template that implements the multiple document interface (MDI).

CMultiLock Class
Represents the access-control mechanism used in controlling access to resources in a multithreaded program.

CMultiPageDHtmlDialog Class
A multipage dialog displays multiple HTML pages sequentially and handles the events from each page.

CMultiPaneFrameWnd Class
Extends CPaneFrameWnd Class. It can support multiple panes. Instead of a single embedded handle to a control bar, CMultiPaneFrameWnd contains a CPaneContainerManager Class object that enables the user to dock one CMultiPaneFrameWnd to another and dynamically create multiple floating, tabbed windows.

CMutex Class
Represents a mutex, which is a synchronization object that allows one thread mutually exclusive access to a resource.

CNetAddressCtrl Class
The CNetAddressCtrl class represents the network address control, which you can use to input and validate the format of IPv4, IPv6, and named DNS addresses.

CNotSupportedException Class
Represents an exception that is the result of a request for an unsupported feature.

CObArray Class
Supports arrays of CObject pointers.

CObject Class
The principal base class for the Microsoft Foundation Class Library.

CObList Class
Supports ordered lists of non-unique CObject pointers accessible sequentially or by pointer value.

COccManager Class
Manages various custom control sites; implemented by COleControlContainer and COleControlSite objects.

COleBusyDialog Class
Used for the OLE Server Not Responding or Server Busy dialog boxes.

COleChangeIconDialog Class
Used for the OLE Change Icon dialog box.

COleChangeSourceDialog Class
Used for the OLE Change Source dialog box.

COleClientItem Class
Defines the container interface to OLE items.

COleCmdUI Class
Implements a method for MFC to update the state of user-interface objects related to the IOleCommandTarget-driven features of your application.

COleControl Class
A powerful base class for developing OLE controls.

COleControlContainer Class
Acts as a control container for ActiveX controls.

COleControlModule Class
The base class from which you derive an OLE control module object.

COleControlSite Class
Provides support for custom client-side control interfaces.

COleConvertDialog Class
For more information, see the OLEUICONVERT structure in the Windows SDK.

COleCurrency Class
Encapsulates the CURRENCY data type of OLE automation.

COleDataObject Class
Used in data transfers for retrieving data in various formats from the Clipboard, through drag and drop, or from an embedded OLE item.

COleDataSource Class
Acts as a cache into which an application places the data that it will offer during data transfer operations, such as Clipboard or drag-and-drop operations.

COleDBRecordView Class
A view that displays database records in controls.

COleDialog Class
Provides functionality common to dialog boxes for OLE.

COleDispatchDriver Class
Implements the client side of OLE automation.

COleDispatchException Class
Handles exceptions specific to the OLE IDispatch interface, which is a key part of OLE automation.

COleDocObjectItem Class
Implements Active document containment.

COleDocument Class
The base class for OLE documents that support visual editing.

COleDropSource Class
Enables data to be dragged to a drop target.

COleDropTarget Class
Provides the communication mechanism between a window and the OLE libraries.

COleException Class
Represents an exception condition related to an OLE operation.

COleInsertDialog Class
Used for the OLE Insert Object dialog box.

COleIPFrameWnd Class
The base for your application's in-place editing window.

COleIPFrameWndEx Class
Implements an OLE container that supports MFC. You must derive the in-place frame window class for your application from the COleIPFrameWndEx class, instead of deriving it from the COleIPFrameWnd class.

COleLinkingDoc Class
The base class for OLE container documents that support linking to the embedded items they contain.

COleLinksDialog Class
Used for the OLE Edit Links dialog box.

COleMessageFilter Class
Manages the concurrency required by the interaction of OLE applications.

COleObjectFactory Class
Implements the OLE class factory, which creates OLE objects such as servers, automation objects, and documents.

COlePasteSpecialDialog Class
Used for the OLE Paste Special dialog box.

COlePropertiesDialog Class
Encapsulates the Windows common OLE Object Properties dialog box.

COlePropertyPage Class
Used to display the properties of a custom control in a graphical interface, similar to a dialog box.

COleResizeBar Class
A type of control bar that supports resizing of in-place OLE items.

COleSafeArray Class
A class for working with arrays of arbitrary type and dimension.

COleServerDoc Class
The base class for OLE server documents.

COleServerItem Class
Provides the server interface to OLE items.

COleStreamFile Class
Represents a stream of data (IStream) in a compound file as part of OLE Structured Storage.

COleTemplateServer Class
Used for OLE visual editing servers, automation servers, and link containers (applications that support links to embeddings).

COleUpdateDialog Class
Used for a special case of the OLE Edit Links dialog box, which should be used when you need to update only existing linked or embedded objects in a document.

COleVariant Class
Encapsulates the VARIANT data type.

CPagerCtrl Class
The CPagerCtrl class wraps the Windows pager control, which can scroll into view a contained window that does not fit the containing window.

CPageSetupDialog Class
Encapsulates the services provided by the Windows common OLE Page Setup dialog box with additional support for setting and modifying print margins.

CPaintDC Class
A device-context class derived from CDC Class.

CPalette Class
Encapsulates a Windows color palette.

CPane Class
Enhancement of the CControlBar Class. If you are upgrading an existing MFC project, you need to replace all occurrences of CControlBar with CPane.

CPaneContainer Class
Basic component of the docking model implemented by MFC. An object of this class stores pointers to two docking panes or to two instances of CPaneContainer. It also stores a pointer to the divider that separates the panes (or the containers). By nesting containers inside containers, the framework can build a binary tree that represents complex docking layouts. The root of the binary tree is stored in a CPaneContainerManager Class object.

CPaneContainerManager Class
Manages the storage and display of the current docking layout.

CPaneDialog Class
Supports a modeless, dockable dialog box.

CPaneDivider Class
Divides two panes, divides two groups of panes, or separates a group of panes from the client area of the main frame window.

CPaneFrameWnd Class
Implements a mini-frame window that contains one pane. The pane fills the client area of the window.

CParabolicTransitionFromAcceleration Class
Encapsulates a parabolic-acceleration transition.

CPen Class
Encapsulates a Windows graphics device interface (GDI) pen.

CPictureHolder Class
Implements a Picture property, which lets the user display a picture in your control.

CPoint Class
Similar to the Windows POINT structure.

CPrintDialog Class
Encapsulates the services provided by the Windows common dialog box for printing.

CPrintDialogEx Class
Encapsulates the services provided by the Windows Print property sheet.

CProgressCtrl Class
Provides the functionality of the Windows common progress bar control.

CPropertyPage Class
Represents individual pages of a property sheet, otherwise known as a tab dialog box.

CPropertySheet Class
Represents property sheets, also known as tab dialog boxes.

CPropExchange Class
Supports the implementation of persistence for your OLE controls.

CPtrArray Class
Supports arrays of void pointers.

CPtrList Class
Supports lists of void pointers.

CReBar Class
A control bar that provides layout, persistence, and state information for rebar controls.

CReBarCtrl Class
Encapsulates the functionality of a rebar control, which is a container for a child window.

CRecentDockSiteInfo Class
Helper class that stores recent state information for the CPane Class.

CRecentFileList Class
Supports control of the most recently used (MRU) file list.

CRecordset Class
Represents a set of records selected from a data source.

CRecordView Class
A view that displays database records in controls.

CRect Class
Similar to a Windows RECT structure.

CRectTracker Class
Enables an item to be displayed, moved, and resized in different fashions.

CRenderTarget Class
A wrapper for ID2D1RenderTarget.

CResourceException Class
Generated when Windows cannot find or allocate a requested resource.

CReversalTransition Class
Encapsulates a reversal transition.

CRgn Class
Encapsulates a Windows graphics device interface (GDI) region.

CRichEditCntrItem Class
With CRichEditView Class and CRichEditDoc Class, provides the functionality of the rich edit control within the context of MFC's document view architecture.

CRichEditCtrl Class
Provides the functionality of the rich edit control.

CRichEditDoc Class
With CRichEditView Class and CRichEditCntrItem Class, provides the functionality of the rich edit control within the context of MFC's document view architecture.

CRichEditView Class
With CRichEditDoc Class and CRichEditCntrItem Class, provides the functionality of the rich edit control within the context of MFC's document view architecture.

CScrollBar Class
Provides the functionality of a Windows scroll-bar control.

CScrollView Class
A CView Class with scrolling capabilities.

CSemaphore Class
Represents a "semaphore", which is a synchronization object that allows a limited number of threads in one or more processes to access aMaintains a count of the number of threads currently accessing a specified resource.

CSettingsStore Class
Wraps Windows API functions, providing an object-oriented interface that you use to access the registry.

CSettingsStoreSP Class
Helper class that you can use to create instances of the CSettingsStore Class.

CSharedFile Class
The CMemFile Class-derived class that supports shared memory files.

CShellManager Class
Implements several methods that enable you to work with pointers to identifier lists (PIDLs).

CSimpleException Class
This class is a base class for resource-critical MFC exceptions.

CSingleDocTemplate Class
Defines a document template that implements the single document interface (SDI).

CSingleLock Class
Represents the access-control mechanism used in controlling access to a resource in a multithreaded program.

CSinusoidalTransitionFromRange Class
Encapsulates a sinusoidal-range transition that has a given range of oscillation.

CSinusoidalTransitionFromVelocity Class
Encapsulates a sinusoidal-velocity transition that has an amplitude that is determined by the initial velocity of the animation variable.

CSize Class
Similar to the Windows SIZE structure, which implements a relative coordinate or position.

CSliderCtrl Class
Provides the functionality of the Windows common slider control.

CSmartDockingInfo Class
Defines the appearance of smart docking markers.

CSmoothStopTransition Class
Encapsulates a smooth-stop transition.

CSocket Class
Derives from CAsyncSocket, and represents a higher level of abstraction of the Windows Sockets API.

CSocketFile Class
A CFile object used for sending and receiving data across a network via Windows Sockets.

CSpinButtonCtrl Class
Provides the functionality of the Windows common spin button control.

CSplitButton Class
Represents a split button control. The split button control performs a default behavior when a user clicks the main part of the button, and displays a drop-down menu when a user clicks the drop-down arrow of the button.

CSplitterWnd Class
Provides the functionality of a splitter window, which is a window that contains multiple panes.

CSplitterWndEx Class
Represents a customized splitter window.

CStatic Class
Provides the functionality of a Windows static control.

CStatusBar Class
A control bar with a row of text output panes, or "indicators".

CStatusBarCtrl Class
Provides the functionality of the Windows common status bar control.

CStdioFile Class
Represents a C run-time stream file as opened by the run-time function fopen, _wfopen.

CStringArray Class
Supports arrays of CString objects.

CStringList Class
Supports lists of CString objects.

CSyncObject Class
A pure virtual class that provides functionality common to the synchronization objects in Win32.

CTabbedPane Class
Implements the functionality of a pane with detachable tabs.

CTabCtrl Class
Provides the functionality of the Windows common tab control.

CTabView Class
Simplifies the use of the tab control class (CTabView Class) in applications that use MFC's document/view architecture.

CTaskDialog Class
A pop-up dialog box that functions like a message box but can display additional information to the user. The CTaskDialog also includes functionality for gathering information from the user.

CToolBar Class
Control bars that have a row of bitmapped buttons and optional separators.

CToolBarCtrl Class
Provides the functionality of the Windows toolbar common control.

CToolTipCtrl Class
Encapsulates the functionality of a "tool tip control", a small pop-up window that displays a single line of text describing the purpose of a tool in an application.

CTooltipManager Class
Maintains runtime information about tooltips. The CTooltipManager class is instantiated one time per application.

CTreeCtrl Class
Provides the functionality of the Windows common tree view control.

CTreeView Class
Simplifies use of the tree control and of CTreeCtrl Class, the class that encapsulates tree-control functionality, with MFC's document-view architecture.

CTypedPtrArray Class
Provides a type-safe "wrapper" for objects of class CPtrArray or CObArray.

CTypedPtrList Class
Provides a type-safe "wrapper" for objects of class CPtrList.

CTypedPtrMap Class
Provides a type-safe "wrapper" for objects of the pointer-map classes CMapPtrToPtr, CMapPtrToWord, CMapWordToPtr, and CMapStringToPtr.

CUIntArray Class
Supports arrays of unsigned integers.

CUserException Class
Thrown to stop an end-user operation.

CUserTool Class
Menu item that runs an external application. The Tools tab of the Customize dialog box (CMFCToolBarsCustomizeDialog Class) enables the user to add user tools, and to specify the name, command, arguments, and initial directory for each user tool.

CUserToolsManager Class
Maintains the collection of CUserTool Class objects in an application. A user tool is a menu item that runs an external application. The CUserToolsManager object enables the user or developer to add new user tools to the application. It supports the execution of the commands associated with user tools, and it also saves information about user tools in the Windows registry.

CView Class
Provides the basic functionality for user-defined view classes.

CVSListBox Class
Supports an editable list control.

CWaitCursor Class
Provides a one-line way to show a wait cursor, which is usually displayed as an hourglass, while you're doing a lengthy operation.

CWinApp Class
The base class from which you derive a Windows application object.

CWinAppEx Class
Handles the application state, saves the state to the registry, loads the state from the registry, initializes application managers, and provides links to those same application managers.

CWindowDC Class
Derived from CDC.

CWinFormsControl Class
Provides the basic functionality for hosting of a Windows Forms control.

CWinFormsDialog Class
A wrapper for an MFC dialog class that hosts a Windows Forms user control.

CWinFormsView Class
Provides generic functionality for hosting of a Windows Forms control as an MFC view.

CWinThread Class
Represents a thread of execution within an application.

CWnd Class
Provides the base functionality of all window classes in the Microsoft Foundation Class Library.

CWordArray Class
Supports arrays of 16-bit words.

MFC Desktop Applications
Contains links to topics about the classes, global functions, global variables, and macros that make up the MFC Library.