Controls (MFC)


For the latest documentation on Visual Studio 2017 RC, see Visual Studio 2017 RC Documentation.

Controls are objects that users can interact with to enter or manipulate data. They commonly appear in dialog boxes or on toolbars. This topic family covers three main kinds of controls:

  • Windows common controls, including owner-drawn controls

  • ActiveX Controls

  • Other control classes supplied by the Microsoft Foundation Class Library (MFC)

The Windows operating system has always provided a number of Windows common controls. These control objects are programmable, and the Visual C++ dialog editor supports adding them to your dialog boxes. The Microsoft Foundation Class Library (MFC) supplies classes that encapsulate each of these controls, as shown in the table Windows Common Controls and MFC Classes. (Some items in the table have related topics that describe them further. For controls that lack topics, see the documentation for the MFC class.)

Class CWnd is the base class of all window classes, including all of the control classes. The Windows common controls are supported in the following environments:

  • Windows 95, Windows 98, and Windows 2000

  • Windows NT, version 3.51 and later

  • Win32s, version 1.3 (Visual C++ versions 4.2 and later do not support Win32s)

The older common controls — check boxes, combo boxes, edit boxes, list boxes, option buttons, pushbuttons, scroll bar controls, and static controls — were available in earlier versions of Windows as well.

ActiveX controls, formerly known as OLE controls, can be used in dialog boxes in your applications for Windows, or in HTML pages on the World Wide Web. For more information, see MFC ActiveX Controls.

In addition to classes that encapsulate all of the Windows common controls and that support programming your own ActiveX controls (or using ActiveX controls supplied by others), MFC supplies the following control classes of its own:

The table below briefly describes each of the Windows common controls, including the control's MFC wrapper class.

Windows Common Controls and MFC Classes

ControlMFC classDescriptionNew in Windows 95
animationCAnimateCtrlDisplays successive frames of an AVI video clipYes
buttonCButtonPushbuttons that cause an action; also used for check boxes, radio buttons, and group boxesNo
combo boxCComboBoxCombination of an edit box and a list boxNo
date and time pickerCDateTimeCtrlAllows the user to choose a specific date or time valueYes
edit boxCEditBoxes for entering textNo
extended combo boxCComboBoxExA combo box control with the ability to display imagesYes
headerCHeaderCtrlButton that appears above a column of text; controls width of text displayedYes
hotkeyCHotKeyCtrlWindow that enables user to create a "hot key" to perform an action quicklyYes
image listCImageListCollection of images used to manage large sets of icons or bitmaps (image list isn't really a control; it supports lists used by other controls)Yes
listCListCtrlWindow that displays a list of text with iconsYes
list boxCListBoxBox that contains a list of stringsNo
month calendarCMonthCalCtrlControl that displays date informationYes
progressCProgressCtrlWindow that indicates progress of a long operationYes
rebarCRebarCtrlTool bar that can contain additional child windows in the form of controlsYes
rich editCRichEditCtrlWindow in which user can edit with character and paragraph formatting (see Classes Related to Rich Edit Controls)Yes
scroll barCScrollBarScroll bar used as a control inside a dialog box (not on a window)No
sliderCSliderCtrlWindow containing a slider control with optional tick marksYes
spin buttonCSpinButtonCtrlPair of arrow buttons user can click to increment or decrement a valueYes
static-textCStaticText for labeling other controlsNo
status barCStatusBarCtrlWindow for displaying status information, similar to MFC class CStatusBarYes
tabCTabCtrlAnalogous to the dividers in a notebook; used in "tab dialog boxes" or property sheetsYes
toolbarCToolBarCtrlWindow with command-generating buttons, similar to MFC class CToolBarYes
tool tipCToolTipCtrlSmall pop-up window that describes purpose of a toolbar button or other toolYes
treeCTreeCtrlWindow that displays a hierarchical list of itemsYes

What do you want to know more about

For information about Windows common controls in the Windows SDK, see Common Controls.

User Interface Elements
Dialog Editor