Changes the style or extended style of the specified control, respectively.
ControlSetStyle Value, Control , WinTitle, WinText, ExcludeTitle, ExcludeText ControlSetExStyle Value, Control , WinTitle, WinText, ExcludeTitle, ExcludeText
Pass a positive integer to completely overwrite the window's style; that is, to set it to Value.
To easily add, remove or toggle styles, pass a numeric string prefixed with a plus sign (+), minus sign (-) or caret (^), respectively. The new style value is calculated as shown below (where CurrentStyle could be retrieved with ControlGetStyle, ControlGetExStyle, WinGetStyle or WinGetExStyle):
Operation | Prefix | Example | Formula |
---|---|---|---|
Add | + | "+0x80" |
NewStyle := CurrentStyle | Value |
Remove | - | "-0x80" |
NewStyle := CurrentStyle & ~Value |
Toggle | ^ | "^0x80" |
NewStyle := CurrentStyle ^ Value |
If Value is a negative integer, it is treated the same as the corresponding numeric string.
To use the + or ^ prefix literally in an expression, the prefix or value must be enclosed in quote marks. For example: ControlSetStyle("+0x80")
or ControlSetStyle("^" StylesToToggle)
. This is because the expression +123
produces 123 (without a prefix) and ^123
is a syntax error.
Type: String, Integer or Object
The control's ClassNN, text or HWND, or an object with a Hwnd
property. For details, see The Control Parameter.
Type: String, Integer or Object
If each of these is blank or omitted, the Last Found Window will be used. Otherwise, specify for WinTitle a window title or other criteria to identify the target window and/or for WinText a substring from a single text element of the target window (as revealed by the included Window Spy utility).
ExcludeTitle and ExcludeText can be used to exclude one or more windows by their title or text. Their specification is similar to WinTitle and WinText, except that ExcludeTitle does not recognize any criteria other than the window title.
Window titles and text are case-sensitive. By default, hidden windows are not detected and hidden text elements are detected, unless changed with DetectHiddenWindows and DetectHiddenText; however, when using pure HWNDs, hidden windows are always detected regardless of DetectHiddenWindows. By default, a window title can contain WinTitle or ExcludeTitle anywhere inside it to be a match, unless changed with SetTitleMatchMode.
A TargetError is thrown if the window or control could not be found.
An OSError is thrown if the style could not be changed. Partial change is considered a success.
See the styles table for a partial listing of styles.
Certain style changes require that the entire window be redrawn using WinRedraw.
ControlSetExStyle only changes generic extended styles, such as WS_EX_CLIENTEDGE (0x200). To change control-specific extended styles, use SendMessage, e.g. SendMessage(0x1036, 0, 0x1, MyListView)
where 0x1036 is LVM_SETEXTENDEDLISTVIEWSTYLE and 0x1 is LVS_EX_GRIDLINES. Note that when creating a ListView with AutoHotkey, extended ListView styles can also be specified with the LV option.
ControlGetStyle / ControlGetExStyle, WinSetStyle / WinSetExStyle, styles table, Control functions