Windows DDT Controls Reference


Control type Example usage Screenshot
BUTTON Receive user response via mouse click or the keyboard.
CHECK3STATE Allow user selection in 3 stages, checked, grayed or unchecked.
CHECKBOX Allow user selection in 2 stages, checked or unchecked.
COMBOBOX Combines a Label or a TextBox with a ListBox in 3 different ways, depending on style at creation.
FRAME Show a 3-D border with a caption, typically used to frame groups of controls.
GRAPHIC Comes with a large set of easy-to-use commands for drawing text and various shapes, etc. Can also load and save .bmp images.
IMAGE Display a bitmap or icon stored in a resource file. The image is shown in natural size.
IMAGEX Display a bitmap or icon stored in a resource file. The image is stretched to the client area's size.
IMGBUTTON Standard BUTTON, but showing an image from a resource file instead of text. The image is shown in natural size.
IMGBUTTONX Standard BUTTON, but showing an image from a resource file instead of text. The image is stretched to the client area's size.
LABEL Show text.
LINE Display a 3-D line or Box
LISTBOX Present a list selectable of items.
OPTION Allow user selection where only one option in a group can be selected.
SCROLLBAR Show a vertical or horizontal scrollbar, for scrolling large images or text in a label, etc.
TEXTBOX Receive user input in the form of text and text editor.


Other controls

Microsoft provides a word processor control called RichEdit, which resides in a file called RICHED32.DLL (v1.0), RICHED20.DLL (v2-3) or MSFTEDIT.DLL (v4.1, Windows XP). The proper dll needs to be initiated once with a call to LoadLibrary before a RichEdit control is created.
Control type Example usage Screenshot
RichEdit Word processor control with Rich Text Format support (.rtf)


Common controls library

The common controls library resides in COMCTL32.DLL, provided by Microsoft. To use these controls, include a file called COMMCTRL.INC, which contains the necessary declares and equates, and then initialize the controls by calling InitCommonControls or InitCommonControlsEx once at for example top of PBMAIN.

Please note that since this dll usually is updated and enhanced each time a new version of MS Windows or MS Internet Explorer is released, some controls, styles and calls to them are version dependent, where MSIE 4.0/COMCTL32.DLL v4.7 often is a minimum requirement, and some may even need the latest version of the dll. More information about this can be found at MSDN.
Control type Example usage Screenshot
ComboBoxEx32 Enhanced ComboBox with capacity to show both images and text.
msctls_progress32 Show progress during lengthy operations.
msctls_statusbar32 Show information, typically placed at the bottom of the main window.
msctls_trackbar32 Also known as Slider control. Set values by sliding the "arrow" part.
msctls_updown32 UpDown spin control, typically used together with a TextBox field to set values within a given range.
ReBarWindow32 Container control, where a ToolBar and other controls can be placed in separate, resizable parts.
SysAnimate32 Show .AVI animation during lengthy processes, etc.
SysDateTimePick32 Get and set date and time.
SysHeader32 Stand-alone header control, same as the one a ListView control uses.
SysIPAddress32 4-part IP address text field.
SysListView32 Grid-like list with optional header, gridlines and fullrow select, etc.
SysMonthCal32 Calender control. Can be resized to show several months in same control.
SysTabControl32 Tab page control, typically used in settings dialogs.
SysTreeView32 Treeview control with capacity to show selectable root and sub-items.
ToolbarWindow32 Toolbar control with buttons, typically placed in upper part of the main window.
tooltips_class32 Add tooltips on mouse over to controls.