# Styles Usable by the Gui and GuiControl Commands

## Table of Contents

- Styles Common to Gui/Parent Windows and Most Control Types
- Text | Edit | UpDown | Picture
- Button | Checkbox | Radio | GroupBox
- DropDownList | ComboBox
- ListBox | ListView | TreeView
- DateTime | MonthCal
- Slider | Progress | Tab | StatusBar

## Common styles

default for GUI window |  | WS_POPUP, WS_CAPTION, WS_SYSMENU, WS_MINIMIZEBOX
forced for GUI window |  | WS_CLIPSIBLINGS
WS_BORDER | 0x800000 | +/-Border. Creates a window that has a thin-line border.
WS_POPUP | 0x80000000 | Creates a pop-up window. This style cannot be used with the WS_CHILD style.
WS_CAPTION | 0xC00000 | +/-Caption. Creates a window that has a title bar. This style is a numerical combination of WS_BORDER and WS_DLGFRAME.
WS_DISABLED | 0x8000000 | +/-Disabled. Creates a window that is initially disabled.
WS_DLGFRAME | 0x400000 | Creates a window that has a border of a style typically used with dialog boxes.
WS_GROUP | 0x20000 | +/-Group. Indicates that this control is the first one in a group of controls. This style is automatically applied to manage the "only one at a time" behavior of radio buttons. In the rare case where two groups of radio buttons are added consecutively (with no other control types in between them), this style may be applied manually to the first control of the second radio group, which splits it off from the first.
WS_HSCROLL | 0x100000 | Creates a window that has a horizontal scroll bar.
WS_MAXIMIZE | 0x1000000 | Creates a window that is initially maximized.
WS_MAXIMIZEBOX | 0x10000 | +/-MaximizeBox. Creates a window that has a maximize button. Cannot be combined with the WS_EX_CONTEXTHELP style. The WS_SYSMENU style must also be specified.
WS_MINIMIZE | 0x20000000 | Creates a window that is initially minimized.
WS_MINIMIZEBOX | 0x20000 | +/-MinimizeBox. Creates a window that has a minimize button. Cannot be combined with the WS_EX_CONTEXTHELP style. The WS_SYSMENU style must also be specified.
WS_OVERLAPPED | 0 | Creates an overlapped window. An overlapped window has a title bar and a border. Same as the WS_TILED style.
WS_OVERLAPPEDWINDOW | 0xCF0000 | Creates an overlapped window with the WS_OVERLAPPED, WS_CAPTION, WS_SYSMENU, WS_THICKFRAME, WS_MINIMIZEBOX, and WS_MAXIMIZEBOX styles. Same as the WS_TILEDWINDOW style.
WS_POPUPWINDOW | 0x80880000 | Creates a pop-up window with WS_BORDER, WS_POPUP, and WS_SYSMENU styles. The WS_CAPTION and WS_POPUPWINDOW styles must be combined to make the window menu visible.
WS_SIZEBOX | 0x40000 | +/-Resize. Creates a window that has a sizing border. Same as the WS_THICKFRAME style.
WS_SYSMENU | 0x80000 | +/-SysMenu. Creates a window that has a window menu on its title bar. The WS_CAPTION style must also be specified.
WS_TABSTOP | 0x10000 | +/-Tabstop. Specifies a control that can receive the keyboard focus when the user presses the `Tab` key. Pressing the `Tab` key changes the keyboard focus to the next control with the WS_TABSTOP style.
WS_THICKFRAME | 0x40000 | Creates a window that has a sizing border. Same as the WS_SIZEBOX style.
WS_VSCROLL | 0x200000 | Creates a window that has a vertical scroll bar.
WS_VISIBLE | 0x10000000 | Creates a window that is initially visible.
WS_CHILD | 0x40000000 | Creates a child window. A window with this style cannot have a menu bar. This style cannot be used with the WS_POPUP style.

## Text styles

default |  | None
forced |  | None
SS_BLACKFRAME | 0x7 | Specifies a box with a frame drawn in the same color as the window frames. This color is black in the default color scheme.
SS_BLACKRECT | 0x4 | Specifies a rectangle filled with the current window frame color. This color is black in the default color scheme.
SS_CENTER | 0x1 | +/-Center. Specifies a simple rectangle and centers the text in the rectangle. The control automatically wraps words that extend past the end of a line to the beginning of the next centered line.
SS_ETCHEDFRAME | 0x12 | Draws the frame of the static control using the EDGE_ETCHED edge style.
SS_ETCHEDHORZ | 0x10 | Draws the top and bottom edges of the static control using the EDGE_ETCHED edge style.
SS_ETCHEDVERT | 0x11 | Draws the left and right edges of the static control using the EDGE_ETCHED edge style.
SS_GRAYFRAME | 0x8 | Specifies a box with a frame drawn with the same color as the screen background (desktop). This color is gray in the default color scheme.
SS_GRAYRECT | 0x5 | Specifies a rectangle filled with the current screen background color. This color is gray in the default color scheme.
SS_LEFT | 0 | +/-Left. This is the default. It specifies a simple rectangle and left-aligns the text in the rectangle. The text is formatted before it is displayed. Words that extend past the end of a line are automatically wrapped to the beginning of the next left-aligned line. Words that are longer than the width of the control are truncated.
SS_LEFTNOWORDWRAP | 0xC | +/-Wrap. Specifies a rectangle and left-aligns the text in the rectangle. Tabs are expanded, but words are not wrapped. Text that extends past the end of a line is clipped.
SS_NOPREFIX | 0x80 | Prevents interpretation of any ampersand (&) characters in the control's text as accelerator prefix characters. This can be useful when file names or other strings that might contain an ampersand (&) must be displayed within a text control.
SS_NOTIFY | 0x100 | Sends the parent window the STN_CLICKED notification when the user clicks the control.
SS_RIGHT | 0x2 | +/-Right. Specifies a rectangle and right-aligns the specified text in the rectangle.
SS_SUNKEN | 0x1000 | Draws a half-sunken border around a static control.
SS_WHITEFRAME | 0x9 | Specifies a box with a frame drawn with the same color as the window background. This color is white in the default color scheme.
SS_WHITERECT | 0x6 | Specifies a rectangle filled with the current window background color. This color is white in the default color scheme.

## Edit styles

default |  | WS_TABSTOP and WS_EX_CLIENTEDGE (extended style E0x200) If an Edit is auto-detected as multi-line due to its starting contents containing multiple lines, its height being taller than 1 row, or its row-count having been explicitly specified as greater than 1, the following styles will be applied by default: WS_VSCROLL, ES_WANTRETURN, and ES_AUTOVSCROLL If an Edit is auto-detected as a single line, it defaults to having ES_AUTOHSCROLL.
forced |  | None
ES_AUTOHSCROLL | 0x80 | +/-Wrap for multi-line edits, and +/-Limit for single-line edits. Automatically scrolls text to the right by 10 characters when the user types a character at the end of the line. When the user presses the `Enter` key, the control scrolls all text back to the zero position.
ES_AUTOVSCROLL | 0x40 | Scrolls text up one page when the user presses the `Enter` key on the last line.
ES_CENTER | 0x1 | +/-Center. Centers text in a multiline edit control.
ES_LOWERCASE | 0x10 | +/-Lowercase. Converts all characters to lowercase as they are typed into the edit control.
ES_NOHIDESEL | 0x100 | Negates the default behavior for an edit control. The default behavior hides the selection when the control loses the input focus and inverts the selection when the control receives the input focus. If you specify ES_NOHIDESEL, the selected text is inverted, even if the control does not have the focus.
ES_NUMBER | 0x2000 | +/-Number. Prevents the user from typing anything other than digits in the control.
ES_OEMCONVERT | 0x400 | This style is most useful for edit controls that contain file names.
ES_MULTILINE | 0x4 | +/-Multi. Designates a multiline edit control. The default is a single-line edit control.
ES_PASSWORD | 0x20 | +/-Password. Displays a masking character in place of each character that is typed into the edit control, which conceals the text.
ES_READONLY | 0x800 | +/-ReadOnly. Prevents the user from typing or editing text in the edit control.
ES_RIGHT | 0x2 | +/-Right. Right-aligns text in a multiline edit control.
ES_UPPERCASE | 0x8 | +/-Uppercase. Converts all characters to uppercase as they are typed into the edit control.
ES_WANTRETURN | 0x1000 | +/-WantReturn. Specifies that a carriage return be inserted when the user presses the `Enter` key while typing text into a multiline edit control in a dialog box. If you do not specify this style, pressing the `Enter` key has the same effect as pressing the dialog box's default push button. This style has no effect on a single-line edit control.

## UpDown styles

default |  | UDS_ARROWKEYS, UDS_ALIGNRIGHT, UDS_SETBUDDYINT, and UDS_AUTOBUDDY.
forced |  | None
UDS_WRAP | 0x1 | Named option "Wrap". Causes the control to wrap around to the other end of its range when the user attempts to go beyond the minimum or maximum. Without Wrap, the control stops when the minimum or maximum is reached.
UDS_SETBUDDYINT | 0x2 | Causes the UpDown control to set the text of the buddy control (using the WM_SETTEXT message) when the position changes. However, if the buddy is a ListBox, the ListBox's current selection is changed instead.
UDS_ALIGNRIGHT | 0x4 | Named option "Right" (default). Positions UpDown on the right side of its buddy control.
UDS_ALIGNLEFT | 0x8 | Named option "Left". Positions UpDown on the left side of its buddy control.
UDS_AUTOBUDDY | 0x10 | Automatically selects the previous control in the z-order as the UpDown control's buddy control.
UDS_ARROWKEYS | 0x20 | Allows the user to press `↑` or `↓` on the keyboard to increase or decrease the UpDown control's position.
UDS_HORZ | 0x40 | Named option "Horz". Causes the control's arrows to point left and right instead of up and down.
UDS_NOTHOUSANDS | 0x80 | Does not insert a thousands separator between every three decimal digits in the buddy control.
UDS_HOTTRACK | 0x100 | Causes the control to exhibit "hot tracking" behavior. That is, it highlights the control's buttons as the mouse passes over them. The flag is ignored on Windows XP when the desktop theme overrides it.
(hex) |  | The number format displayed inside the buddy control may be changed from decimal to hexadecimal by following this example:
    Gui +LastFound
    SendMessage, 1133, 16, 0, msctls_updown321 ; 1133 is UDM_SETBASE
However, this affects only the buddy control, not the UpDown's reported position.

## Picture styles

default |  | None
forced |  | SS_ICON for icons and cursors. SS_BITMAP for other image types.
SS_REALSIZECONTROL | 0x40 | [Windows XP or later] Adjusts the bitmap to fit the size of the control.
SS_CENTERIMAGE | 0x200 | Centers the bitmap in the control. If the bitmap is too large, it will be clipped. For text controls, if the control contains a single line of text, the text is centered vertically within the available height of the control. Microsoft Windows XP: This style bit no longer results in unused portions of the control being filled with the color of the top left pixel of the bitmap or icon. Unused portions of the control will remain the background color.

## Button, Checkbox, Radio, and GroupBox styles

default |  | BS_MULTILINE (except for GroupBox, and except for buttons, checkboxes, and radios that have no explicitly set width or height, nor any CR/LF characters in their text) WS_TABSTOP (except for GroupBox) -- however, radio buttons other than the first of each radio group lack WS_TABSTOP by default. In addition, radio buttons have BS_NOTIFY so that double clicks can be detected.
forced |  | Button: BS_PUSHBUTTON or BS_DEFPUSHBUTTON Radio: BS_AUTORADIOBUTTON Checkbox: BS_AUTOCHECKBOX or BS_AUTO3STATE GroupBox: BS_GROUPBOX
BS_LEFT | 0x100 | +/-Left. Left-aligns the text.
BS_PUSHLIKE | 0x1000 | Makes a checkbox or radio button look and act like a push button. The button looks raised when it isn't pushed or checked, and sunken when it is pushed or checked.
BS_RIGHT | 0x200 | +/-Right. Right-aligns the text.
BS_RIGHTBUTTON | 0x20 | +Right (i.e. +Right includes both BS_RIGHT and BS_RIGHTBUTTON, but -Right removes only BS_RIGHT, not BS_RIGHTBUTTON). Positions a checkbox square or radio button circle on the right side of the control's available width instead of the left.
BS_BOTTOM | 0x800 | Places the text at the bottom of the control's available height.
BS_CENTER | 0x300 | +/-Center. Centers the text horizontally within the control's available width.
BS_DEFPUSHBUTTON | 0x1 | +/-Default. Creates a push button with a heavy black border. If the button is in a dialog box, the user can select the button by pressing the `Enter` key, even when the button does not have the input focus. This style is useful for enabling the user to quickly select the most likely option.
BS_MULTILINE | 0x2000 | +/-Wrap. Wraps the text to multiple lines if the text is too long to fit on a single line in the control's available width. This also allows linefeed (`n) to start new lines of text.
BS_TOP | 0x400 | Places text at the top of the control's available height.
BS_VCENTER | 0xC00 | Vertically centers text in the control's available height.
BS_FLAT | 0x8000 | Specifies that the button is two-dimensional; it does not use the default shading to create a 3-D effect.

## DropDownList and ComboBox styles

default |  | WS_TABSTOP (+/-Tabstop) DropDownList: WS_VSCROLL ComboBox: WS_VSCROLL, CBS_AUTOHSCROLL
forced |  | DropDownList: CBS_DROPDOWNLIST ComboBox: Either CBS_DROPDOWN or CBS_SIMPLE
CBS_AUTOHSCROLL | 0x40 | +/-Limit. Automatically scrolls the text in an edit control to the right when the user types a character at the end of the line. If this style is not set, only text that fits within the rectangular boundary is enabled.
CBS_DISABLENOSCROLL | 0x800 | Shows a disabled vertical scroll bar in the drop-down list when it does not contain enough items to scroll. Without this style, the scroll bar is hidden when the drop-down list does not contain enough items.
CBS_LOWERCASE | 0x4000 | +/-Lowercase. Converts to lowercase any uppercase characters that are typed into the edit control of a combo box.
CBS_NOINTEGRALHEIGHT | 0x400 | Specifies that the combo box will be exactly the size specified by the application when it created the combo box. Usually, Windows CE sizes a combo box so that it does not display partial items.
CBS_OEMCONVERT | 0x80 | Converts text typed in the combo box edit control from the Windows CE character set to the OEM character set and then back to the Windows CE set. This style is most useful for combo boxes that contain file names. It applies only to combo boxes created with the CBS_DROPDOWN style.
CBS_SIMPLE | 0x1 | +/-Simple (ComboBox only). Displays the drop-down list at all times. The current selection in the list is displayed in the edit control.
CBS_SORT | 0x100 | +/-Sort. Sorts the items in the drop-list alphabetically.
CBS_UPPERCASE | 0x2000 | +/-Uppercase. Converts to uppercase any lowercase characters that are typed into the edit control of a ComboBox.

## ListBox styles

default |  | WS_TABSTOP, LBS_USETABSTOPS, WS_VSCROLL, and WS_EX_CLIENTEDGE (extended style E0x200).
forced |  | LBS_NOTIFY (supports detection of double-clicks)
LBS_DISABLENOSCROLL | 0x1000 | Shows a disabled vertical scroll bar for the list box when the box does not contain enough items to scroll. If you do not specify this style, the scroll bar is hidden when the list box does not contain enough items.
LBS_NOINTEGRALHEIGHT | 0x100 | Specifies that the list box will be exactly the size specified by the application when it created the list box.
LBS_EXTENDEDSEL | 0x800 | +/-Multi. Allows multiple selections via control-click and shift-click.
LBS_MULTIPLESEL | 0x8 | A simplified version of multi-select in which control-click and shift-click are not necessary because normal left clicks serve to extend the selection or de-select a selected item.
LBS_NOSEL | 0x4000 | +/-ReadOnly. Specifies that the user can view list box strings but cannot select them.
LBS_SORT | 0x2 | +/-Sort. Sorts the items in the list box alphabetically.
LBS_USETABSTOPS | 0x80 | Enables a ListBox to recognize and expand tab characters when drawing its strings. The default tab positions are 32 dialog box units apart. A dialog box unit is equal to one-fourth of the current dialog box base-width unit.

## ListView styles

default |  | WS_TABSTOP, LVS_REPORT, LVS_SHOWSELALWAYS, LVS_EX_FULLROWSELECT, LVS_EX_HEADERDRAGDROP, WS_EX_CLIENTEDGE (E0x200)
forced |  | None
LVS_ALIGNLEFT | 0x800 | Items are left-aligned in icon and small icon view.
LVS_ALIGNTOP | 0 | Items are aligned with the top of the list-view control in icon and small icon view. This is the default.
LVS_AUTOARRANGE | 0x100 | Icons are automatically kept arranged in icon and small icon view.
LVS_EDITLABELS | 0x200 | +/-ReadOnly. Specifying -ReadOnly (or +0x200) allows the user to edit the first field of each row in place.
LVS_ICON | 0 | +Icon. Specifies large-icon view.
LVS_LIST | 0x3 | +List. Specifies list view.
LVS_NOCOLUMNHEADER | 0x4000 | +/-Hdr. Avoids displaying column headers in report view.
LVS_NOLABELWRAP | 0x80 | Item text is displayed on a single line in icon view. By default, item text may wrap in icon view.
LVS_NOSCROLL | 0x2000 | Scrolling is disabled. All items must be within the client area. This style is not compatible with the LVS_LIST or LVS_REPORT styles.
LVS_NOSORTHEADER | 0x8000 | +/-NoSortHdr. Column headers do not work like buttons. This style can be used if clicking a column header in report view does not carry out an action, such as sorting.
LVS_OWNERDATA | 0x1000 | This style specifies a virtual list-view control (not directly supported by AutoHotkey).
LVS_OWNERDRAWFIXED | 0x400 | The owner window can paint items in report view in response to WM_DRAWITEM messages (not directly supported by AutoHotkey).
LVS_REPORT | 0x1 | +Report. Specifies report view.
LVS_SHAREIMAGELISTS | 0x40 | The image list will not be deleted when the control is destroyed. This style enables the use of the same image lists with multiple list-view controls.
LVS_SHOWSELALWAYS | 0x8 | The selection, if any, is always shown, even if the control does not have keyboard focus.
LVS_SINGLESEL | 0x4 | +/-Multi. Only one item at a time can be selected. By default, multiple items can be selected.
LVS_SMALLICON | 0x2 | +IconSmall. Specifies small-icon view.
LVS_SORTASCENDING | 0x10 | +/-Sort. Rows are sorted in ascending order based on the contents of the first field.
LVS_SORTDESCENDING | 0x20 | +/-SortDesc. Same as above but in descending order.

Extended ListView styles require the LV prefix when used with the Gui commands. Some extended styles introduced in Windows XP or later versions are not listed here. For a full list, see MSDN: Extended List-View Styles.

LVS_EX_BORDERSELECT | LV0x8000 | When an item is selected, the border color of the item changes rather than the item being highlighted (might be non-functional in recent operating systems).
LVS_EX_CHECKBOXES | LV0x4 | +/-Checked. Displays a checkbox with each item. When set to this style, the control creates and sets a state image list with two images using DrawFrameControl. State image 1 is the unchecked box, and state image 2 is the checked box. Setting the state image to zero removes the check box altogether. Windows XP or later: Checkboxes are visible and functional with all list-view modes except the tile view mode introduced in Windows XP. Clicking a checkbox in tile view mode only selects the item; the state does not change.
LVS_EX_DOUBLEBUFFER | LV0x10000 | Windows XP or later: Paints via double-buffering, which reduces flicker. This extended style also enables alpha-blended marquee selection on systems where it is supported.
LVS_EX_FLATSB | LV0x100 | Enables flat scroll bars in the list view.
LVS_EX_FULLROWSELECT | LV0x20 | When a row is selected, all its fields are highlighted. This style is available only in conjunction with the LVS_REPORT style.
LVS_EX_GRIDLINES | LV0x1 | +/-Grid. Displays gridlines around rows and columns. This style is available only in conjunction with the LVS_REPORT style.
LVS_EX_HEADERDRAGDROP | LV0x10 | Enables drag-and-drop reordering of columns in a list-view control. This style is only available to list-view controls that use the LVS_REPORT style.
LVS_EX_INFOTIP | LV0x400 | When a list-view control uses this style, the LVN_GETINFOTIP notification message is sent to the parent window before displaying an item's ToolTip.
LVS_EX_LABELTIP | LV0x4000 | If a partially hidden label in any list-view mode lacks ToolTip text, the list-view control will unfold the label. If this style is not set, the list-view control will unfold partly hidden labels only for the large icon mode. Requires Windows XP or later, or the DLLs distributed with Internet Explorer 5.0 or later. Note: On some versions of Windows, this style might not work properly if the GUI window is set to be always-on-top.
LVS_EX_MULTIWORKAREAS | LV0x2000 | If the list-view control has the LVS_AUTOARRANGE style, the control will not autoarrange its icons until one or more work areas are defined (see LVM_SETWORKAREAS). To be effective, this style must be set before any work areas are defined and any items have been added to the control.
LVS_EX_ONECLICKACTIVATE | LV0x40 | The list-view control sends an LVN_ITEMACTIVATE notification message to the parent window when the user clicks an item. This style also enables hot tracking in the list-view control. Hot tracking means that when the cursor moves over an item, it is highlighted but not selected.
LVS_EX_REGIONAL | LV0x200 | Sets the list-view window region to include only the item icons and text using SetWindowRgn. Any area that is not part of an item is excluded from the window region. This style is only available to list-view controls that use the LVS_ICON style.
LVS_EX_SIMPLESELECT | LV0x100000 | In icon view, moves the state image of the item to the top right of the large icon rendering. In views other than icon view there is no change. When the user changes the state by using the space bar, all selected items cycle over, not the item with the focus. Requires Windows XP or later.
LVS_EX_SUBITEMIMAGES | LV0x2 | Allows images to be displayed for fields beyond the first. This style is available only in conjunction with the LVS_REPORT style.
LVS_EX_TRACKSELECT | LV0x8 | Enables hot-track selection in a list-view control. Hot track selection means that an item is automatically selected when the cursor remains over the item for a certain period of time. The delay can be changed from the default system setting with a LVM_SETHOVERTIME message. This style applies to all styles of list-view control. You can check whether hot-track selection is enabled by calling SystemParametersInfo.
LVS_EX_TWOCLICKACTIVATE | LV0x80 | The list-view control sends an LVN_ITEMACTIVATE notification message to the parent window when the user double-clicks an item. This style also enables hot tracking in the list-view control. Hot tracking means that when the cursor moves over an item, it is highlighted but not selected.
LVS_EX_UNDERLINECOLD | LV0x1000 | Causes those non-hot items that may be activated to be displayed with underlined text. This style requires that LVS_EX_TWOCLICKACTIVATE be set also.
LVS_EX_UNDERLINEHOT | LV0x800 | Causes those hot items that may be activated to be displayed with underlined text. This style requires that LVS_EX_ONECLICKACTIVATE or LVS_EX_TWOCLICKACTIVATE also be set.

## TreeView styles

default |  | WS_TABSTOP, TVS_SHOWSELALWAYS, TVS_HASLINES, TVS_LINESATROOT, TVS_HASBUTTONS, WS_EX_CLIENTEDGE (E0x200)
forced |  | None
TVS_CHECKBOXES | 0x100 | +/-Checked. Displays a checkbox next to each item.
TVS_DISABLEDRAGDROP | 0x10 | Prevents the tree-view control from sending TVN_BEGINDRAG notification messages.
TVS_EDITLABELS | 0x8 | +/-ReadOnly. Allows the user to edit the names of tree-view items.
TVS_FULLROWSELECT | 0x1000 | Enables full-row selection in the tree view. The entire row of the selected item is highlighted, and clicking anywhere on an item's row causes it to be selected. This style cannot be used in conjunction with the TVS_HASLINES style.
TVS_HASBUTTONS | 0x1 | +/-Buttons. Displays plus (+) and minus (-) buttons next to parent items. The user clicks the buttons to expand or collapse a parent item's list of child items. To include buttons with items at the root of the tree view, TVS_LINESATROOT must also be specified.
TVS_HASLINES | 0x2 | +/-Lines. Uses lines to show the hierarchy of items.
TVS_INFOTIP | 0x800 | Obtains ToolTip information by sending the TVN_GETINFOTIP notification.
TVS_LINESATROOT | 0x4 | +/-Lines. Uses lines to link items at the root of the tree-view control. This value is ignored if TVS_HASLINES is not also specified.
TVS_NOHSCROLL | 0x8000 | +/-HScroll. Disables horizontal scrolling in the control. The control will not display any horizontal scroll bars.
TVS_NONEVENHEIGHT | 0x4000 | Sets the height of the items to an odd height with the TVM_SETITEMHEIGHT message. By default, the height of items must be an even value.
TVS_NOSCROLL | 0x2000 | Disables both horizontal and vertical scrolling in the control. The control will not display any scroll bars.
TVS_NOTOOLTIPS | 0x80 | Disables ToolTips.
TVS_RTLREADING | 0x40 | Causes text to be displayed from right-to-left (RTL). Usually, windows display text left-to-right (LTR).
TVS_SHOWSELALWAYS | 0x20 | Causes a selected item to remain selected when the tree-view control loses focus.
TVS_SINGLEEXPAND | 0x400 | Causes the item being selected to expand and the item being unselected to collapse upon selection in the tree-view. If the user holds down the `Ctrl` key while selecting an item, the item being unselected will not be collapsed.
TVS_TRACKSELECT | 0x200 | Enables hot tracking of the mouse in a tree-view control.

## DateTime styles

default |  | DTS_SHORTDATECENTURYFORMAT and WS_TABSTOP (+/-Tabstop)
forced |  | None
DTS_UPDOWN | 0x1 | Provides an up-down control to the right of the control to modify date-time values, which replaces the of the drop-down month calendar that would otherwise be available.
DTS_SHOWNONE | 0x2 | Displays a checkbox inside the control that users can uncheck to make the control have no date/time selected. Whenever the control has no date/time, Gui Submit and GuiControlGet will retrieve a blank value (empty string).
DTS_SHORTDATEFORMAT | 0x0 | Displays the date in short format. In some locales, it looks like 6/1/05 or 6/1/2005. On older operating systems, a two-digit year might be displayed. This is why DTS_SHORTDATECENTURYFORMAT is the default and not DTS_SHORTDATEFORMAT.
DTS_LONGDATEFORMAT | 0x4 | Format option "LongDate". Displays the date in long format. In some locales, it looks like Wednesday, June 01, 2005.
DTS_SHORTDATECENTURYFORMAT | 0xC | Format option blank/omitted. Displays the date in short format with four-digit year. In some locales, it looks like 6/1/2005. If the system's version of Comctl32.dll is older than 5.8, this style is not supported and DTS_SHORTDATEFORMAT is automatically substituted.
DTS_TIMEFORMAT | 0x9 | Format option "Time". Displays only the time, which in some locales looks like 5:31:42 PM.
DTS_APPCANPARSE | 0x10 | Not yet supported. Allows the owner to parse user input and take necessary action. It enables users to edit within the client area of the control when they press the `F2` key. The control sends DTN_USERSTRING notification messages when users are finished.
DTS_RIGHTALIGN | 0x20 | +/-Right. The calendar will drop down on the right side of the control instead of the left.
(colors inside the drop-down calendar) |  | The colors of the day numbers inside the drop-down calendar obey that set by the Gui Font command or the c (Color) option. To change the colors of other parts of the calendar, follow this example:
    Gui +LastFound
    SendMessage, 0x1006, 4, 0xFFAA99, SysDateTimePick321 ; 0x1006 is DTM_SETMCCOLOR. 4 is MCSC_MONTHBK (background color). The color must be specified in BGR vs. RGB format (red and blue components swapped).

## MonthCal styles

default |  | WS_TABSTOP (only on [v1.1.22+], and only on Windows Vista and later)
forced |  | None
MCS_DAYSTATE | 0x1 | Makes the control send MCN_GETDAYSTATE notifications to request information about which days should be displayed in bold. [Not yet supported]
MCS_MULTISELECT | 0x2 | Named option "Multi". Allows the user to select a range of dates rather than being limited to a single date. By default, the maximum range is 366 days, which can be changed by sending the MCM_SETMAXSELCOUNT message to the control. For example:
    Gui +LastFound
    SendMessage, 0x1004, 7, 0, SysMonthCal321 ; 7 days. 0x1004 is MCM_SETMAXSELCOUNT.
MCS_WEEKNUMBERS | 0x4 | Displays week numbers (1-52) to the left of each row of days. Week 1 is defined as the first week that contains at least four days.
MCS_NOTODAYCIRCLE | 0x8 | Prevents the circling of today's date within the control.
MCS_NOTODAY | 0x10 | Prevents the display of today's date at the bottom of the control.
(colors) |  | The colors of the day numbers inside the calendar obey that set by the Gui Font command or the c (Color) option. To change the colors of other parts of the calendar, follow this example:
    Gui +LastFound
    SendMessage, 0x100A, 5, 0xFFAA99, SysMonthCal321 ; 0x100A is MCM_SETCOLOR. 5 is MCSC_TITLETEXT (color of title text). The color must be specified in BGR vs. RGB format (red and blue components swapped).

## Slider styles

default |  | WS_TABSTOP (+/-Tabstop)
forced |  | None
TBS_VERT | 0x2 | +/-Vertical. The control is oriented vertically.
TBS_LEFT | 0x4 | +/-Left. The control displays tick marks at the top of the control (or to its left if TBS_VERT is present). Same as TBS_TOP.
TBS_TOP | 0x4 | same as TBS_LEFT.
TBS_BOTH | 0x8 | +/-Center. The control displays tick marks on both sides of the control. This will be both top and bottom when used with TBS_HORZ or both left and right if used with TBS_VERT.
TBS_AUTOTICKS | 0x1 | The control has a tick mark for each increment in its range of values. Use +/-TickInterval to have more flexibility.
TBS_ENABLESELRANGE | 0x20 | The control displays a selection range only. The tick marks at the starting and ending positions of a selection range are displayed as triangles (instead of vertical dashes), and the selection range is highlighted (highlighting might require that the theme be removed via `Gui -theme`). To set the selection range, follow this example, which sets the starting position to 55 and the ending position to 66:
    SendMessage, 1035, 1, 55, msctls_trackbar321, WinTitle
    SendMessage, 1036, 1, 66, msctls_trackbar321, WinTitle
TBS_FIXEDLENGTH | 0x40 | +/-Thick. Allows the thumb's size to be changed.
TBS_NOTHUMB | 0x80 | The control does not display the moveable bar.
TBS_NOTICKS | 0x10 | +/-NoTicks. The control does not display any tick marks.
TBS_TOOLTIPS | 0x100 | +/-ToolTip. The control supports ToolTips. When a control is created using this style, it automatically creates a default ToolTip control that displays the slider's current position. You can change where the ToolTips are displayed by using the TBM_SETTIPSIDE message.
TBS_REVERSED | 0x200 | Unfortunately, this style has no effect on the actual behavior of the control, so there is probably no point in using it (instead, use +Invert in the control's options to reverse it). Depending on OS version, this style might require Internet Explorer 5.0 or greater.
TBS_DOWNISLEFT | 0x400 | Unfortunately, this style has no effect on the actual behavior of the control, so there is probably no point in using it. Depending on OS version, this style might require Internet Explorer 5.01 or greater.

## Progress styles

default |  | PBS_SMOOTH
forced |  | None
PBS_SMOOTH | 0x1 | +/-Smooth. The progress bar displays progress status in a smooth scrolling bar instead of the default segmented bar. When this style is present, the control automatically reverts to the Classic Theme appearance on Windows XP or later.
PBS_VERTICAL | 0x4 | +/-Vertical. The progress bar displays progress status vertically, from bottom to top.
PBS_MARQUEE | 0x8 | [Requires Windows XP or later] The progress bar moves like a marquee; that is, each change to its position causes the bar to slide further along its available length until it wraps around to the other side. A bar with this style has no defined position. Each attempt to change its position will instead slide the bar by one increment. This style is typically used to indicate an ongoing operation whose completion time is unknown.

## Tab styles

default |  | WS_TABSTOP and TCS_MULTILINE
forced |  | WS_CLIPSIBLINGS TCS_OWNERDRAWFIXED: forced on or off as required by the control's background color and/or text color.
TCS_SCROLLOPPOSITE | 0x1 | Unneeded tabs scroll to the opposite side of the control when a tab is selected.
TCS_BOTTOM | 0x2 | +/-Bottom. Tabs appear at the bottom of the control instead of the top.
TCS_RIGHT | 0x2 | Tabs appear vertically on the right side of controls that use the TCS_VERTICAL style.
TCS_MULTISELECT | 0x4 | Multiple tabs can be selected by holding down`Ctrl` when clicking. This style must be used with the TCS_BUTTONS style.
TCS_FLATBUTTONS | 0x8 | Selected tabs appear as being indented into the background while other tabs appear as being on the same plane as the background. This style only affects tab controls with the TCS_BUTTONS style.
TCS_FORCEICONLEFT | 0x10 | Icons are aligned with the left edge of each fixed-width tab. This style can only be used with the TCS_FIXEDWIDTH style.
TCS_FORCELABELLEFT | 0x20 | Labels are aligned with the left edge of each fixed-width tab; that is, the label is displayed immediately to the right of the icon instead of being centered. This style can only be used with the TCS_FIXEDWIDTH style, and it implies the TCS_FORCEICONLEFT style.
TCS_HOTTRACK | 0x40 | Items under the pointer are automatically highlighted.
TCS_VERTICAL | 0x80 | +/-Left or +/-Right. Tabs appear at the left side of the control, with tab text displayed vertically. This style is valid only when used with the TCS_MULTILINE style. To make tabs appear on the right side of the control, also use the TCS_RIGHT style. This style will not correctly display the tabs if a custom background color or text color is in effect. To workaround this, specify -Background and/or cDefault in the tab control's options.
TCS_BUTTONS | 0x100 | +/-Buttons. Tabs appear as buttons, and no border is drawn around the display area.
TCS_SINGLELINE | 0 | +/-Wrap. Only one row of tabs is displayed. The user can scroll to see more tabs, if necessary. This style is the default.
TCS_MULTILINE | 0x200 | +/-Wrap. Multiple rows of tabs are displayed, if necessary, so all tabs are visible at once.
TCS_RIGHTJUSTIFY | 0 | This is the default. The width of each tab is increased, if necessary, so that each row of tabs fills the entire width of the tab control. This window style is ignored unless the TCS_MULTILINE style is also specified.
TCS_FIXEDWIDTH | 0x400 | All tabs are the same width. This style cannot be combined with the TCS_RIGHTJUSTIFY style.
TCS_RAGGEDRIGHT | 0x800 | Rows of tabs will not be stretched to fill the entire width of the control. This style is the default.
TCS_FOCUSONBUTTONDOWN | 0x1000 | The tab control receives the input focus when clicked.
TCS_OWNERDRAWFIXED | 0x2000 | The parent window is responsible for drawing tabs.
TCS_TOOLTIPS | 0x4000 | The tab control has a tooltip control associated with it.
TCS_FOCUSNEVER | 0x8000 | The tab control does not receive the input focus when clicked.

## StatusBar styles

default |  | SBARS_TOOLTIPS and SBARS_SIZEGRIP (the latter only if the window is resizable).
forced |  | None
SBARS_TOOLTIPS | 0x800 | Displays a tooltip when the mouse hovers over a part of the status bar that: 1) has too much text to be fully displayed; or 2) has an icon but no text. The text of the ToolTip can be set via:
    Gui +LastFound
    SendMessage, 0x410, 0, "Text to display", msctls_statusbar321
The bold 0 above is the zero-based part number. To use a part other than the first, specify 1 for second, 2 for the third, etc. NOTE: The ToolTip might never appear on certain OS versions.
SBARS_SIZEGRIP | 0x100 | Includes a sizing grip at the right end of the status bar. A sizing grip is similar to a sizing border; it is a rectangular area that the user can click and drag to resize the parent window.