本页列出了一些样式和扩展样式, 可以通过方法 Gui.Opt 和 GuiControl.Opt, 和内置函数 WinSetStyle, WinSetExStyle, WinGetStyle, WinGetExStyle, ControlSetStyle, ControlSetExStyle, ControlGetStyle 和 ControlGetExStyle 来设置或检索.
默认情况下, GUI 窗口使用 WS_POPUP, WS_CAPTION, WS_SYSMENU 和 WS_MINIMIZEBOX. 对于一个 GUI 窗口, WS_CLIPSIBLINGS 总是被启用而不能被禁用.
这些样式会影响到 Text 控件. 它既没有默认样式也没有强制样式.
这些样式会影响到 Edit 控件. 默认情况下, 它使用 WS_TABSTOP 和 WS_EX_CLIENTEDGE(扩展样式 E0x200). 它没有强制样式.
如果一个编辑控件由于初始内容包含多行, 高度大于 1 行或明确指定大于 1 的行数而自动检测为多行控件时, 默认将自动应用下列样式: WS_VSCROLL, ES_WANTRETURN 和 ES_AUTOVSCROLL.
如果一个编辑控件被自动检测为单行, 那么它默认含有 ES_AUTOHSCROLL.
这些样式会影响到 UpDown 控件. 默认情况下, 它使用 UDS_ARROWKEYS, UDS_ALIGNRIGHT, UDS_SETBUDDYINT 和 UDS_AUTOBUDDY. 它没有强制样式.
这些样式会影响到 Picture 控件. 他没有默认样式. 样式 SS_ICON(图标和光标) 或 SS_BITMAP(其他图片类型) 总是被启用而不能被禁用.
让位图在控件中居中显示. 如果位图太大, 则会对其进行裁剪. 对于文本控件, 如果控件包含单行文本, 那么会在控件的可用高度内垂直居中显示文本.
这些样式会影响到 Button, CheckBox, Radio 或 GroupBox 控件.
默认情况下, 除了 GroupBox 之外, 这些控件都使用 BS_MULTILINE(除非它没有显式设置宽度或高度, 或在其文本中没有任何 CR/LF 字符) 和 WS_TABSTOP(然而, 对于 Radio 控件, 每个单选按钮组中除首个外的其他单选按钮没有 WS_TABSTOP). 此外, Radio 控件具有 BS_NOTIFY, 这样可以检测到双击.
以下样式总是被启用, 不能被禁用:
这些样式会影响到 DropDownList 和 ComboBox 控件.
默认情况下, 这些控件都使用 WS_TABSTOP. 此外, DropDownList 控件使用 WS_VSCROLL, 而 ComboBox 控件使用 WS_VSCROLL 和 CBS_AUTOHSCROLL.
这些样式会影响到 ListBox 控件. 默认情况下, 它使用 WS_TABSTOP, LBS_USETABSTOPS, WS_VSCROLL 和 WS_EX_CLIENTEDGE(扩展样式 E0x200). 样式 LBS_NOTIFY(支持检测双击) 总是被启用, 不能被禁用.
这些样式会影响到 ListView 控件. 默认情况下, 它使用 WS_TABSTOP, LVS_REPORT, LVS_SHOWSELALWAYS, LVS_EX_FULLROWSELECT, LVS_EX_HEADERDRAGDROP 和 WS_EX_CLIENTEDGE(扩展样式 E0x200). 它没有强制样式.
扩展 ListView 样式 与 Gui 方法/属性一起使用时, 需要 LV 前缀. 某些在 Windows XP 或更高版本中引入的扩展样式未在此列出. 有关完整列表, 请参阅 Microsoft Docs: Extended List-View Styles.
+/-Checked. 为每个项目显示一个复选框. 设置此样式后, 控件会使用 DrawFrameControl 创建和设置含两个图像的状态图像列表. 状态图像 1 为未选中的方框, 而状态图像 2 为选中的方框. 设置状态图像为零会移除复选框.
除了平铺视图模式外, 所有列表视图模式中的复选框是可见并具有功能的. 在平铺视图模式中点击复选框仅选择项目; 状态不会发生变化.
通过双缓冲绘图, 能减少闪烁. 此扩展样式还可以在受支持的系统上激活 alpha-混合 选取框选择.
这些样式会影响到 TreeView 控件. 默认情况下, 它使用 WS_TABSTOP, TVS_SHOWSELALWAYS, TVS_HASLINES, TVS_LINESATROOT, TVS_HASBUTTONS 和 WS_EX_CLIENTEDGE(扩展样式 E0x200). 它没有强制样式.
这些样式会影响到 DateTime 控件. 默认情况下, 它使用 DTS_SHORTDATECENTURYFORMAT 和 WS_TABSTOP. 它没有强制样式.
这些样式会影响到 MonthCal 控件. 默认情况下, 它使用 WS_TABSTOP. 它没有强制样式.
命名选项 "Multi". 允许用户选择日期范围而不限制为单个日期. 默认情况下, 最大的范围为 366 天, 此设置可以通过给控件发送 MCM_SETMAXSELCOUNT 消息改变. 例如:
SendMessage 0x1004, 7, 0, "SysMonthCal321", MyGui ; 7 天. 0x1004 为 MCM_SETMAXSELCOUNT.
这些样式会影响到 Slider 控件. 默认情况下, 它使用 WS_TABSTOP. 它没有强制样式.
让控件仅显示选择范围. 在选择范围起始位置和结束位置的刻度线显示为三角形(而不是垂直的短划线), 且高亮选择范围(可能需要使用 GuiObj.Opt("-Theme") 移除主题才能高亮).
GuiObj.Opt("-Theme")
要设置选择范围, 请参照此例, 这里设置起始位置为 55 而结束位置为 66:
SendMessage 0x040B, 1, 55, "msctls_trackbar321", WinTitle SendMessage 0x040C, 1, 66, "msctls_trackbar321", WinTitle
这些样式会影响到 Progress 控件. 默认情况下, 它使用 PBS_SMOOTH. 它没有强制样式.
进度条会像大盖帽一样移动; 即每次移动时条会沿着其可用长度向前滑动直到碰到另一端. 含有此样式的条没有明确的位置. 相反, 每次试图改变位置时进度条将移动一格.
此样式常用来指示一个正在进行的完成时间未知的操作.
这些样式会影响到 Tab 控件. 默认情况下, 它使用 WS_TABSTOP 和 TCS_MULTILINE. 样式 WS_CLIPSIBLINGS 总是被启用而不能被禁用, 而 TCS_OWNERDRAWFIXED 则根据控件的背景颜色和/或文本颜色的要求强制开启或关闭.
让标签和每个固定宽度选项卡的左边缘对齐; 即标签紧跟在图标右边显示而不居中显示.
此样式只能和 TCS_FIXEDWIDTH 样式一起使用, 同时它隐含了 TCS_FORCEICONLEFT 样式.
+/-Left 或 +/-Right. 选项卡显示在控件的左边, 且选项卡文本垂直显示. 此样式仅在和 TCS_MULTILINE 样式一起使用时才有效. 要让选项卡显示在控件的右边, 请同时使用 TCS_RIGHT 样式.
当自定义背景颜色或文本颜色有效时, 此样式将无法正确显示选项卡. 为了解决此问题, 请在选项卡控件的选项中指定 -Background 和/或 cDefault.
这是默认的. 必要时增加每个选项卡的宽度, 这样每行的选项卡会充满选项卡控件的全部宽度.
只有同时使用 TCS_MULTILINE 样式时此窗口样式才有效.
这些样式会影响到 StatusBar 控件. 默认情况下, 它使用 SBARS_TOOLTIPS 和 SBARS_SIZEGRIP(后者只有在窗口可调整大小的情况下才会出现). 它没有强制样式.
当鼠标悬停在状态栏部分上时显示工具提示: 1) 文本过多以致无法完全显示; 或 2) 含有图标但没有文本.
工具提示的文本可以使用下面的方法设置:
SendMessage 0x411, 0, StrPtr("Text to display"), "msctls_statusbar321", MyGui ; 0x0411 is SB_SETTIPTEXTW.
上面的粗体 0 是从零开始的状态栏部分的编号. 要使用首个外的其他部分, 对第二个指定 1, 对第三个指定 2, 等等. 注意: 在某些操作系统版本中可能永远不会显示工具提示.