<script type="text/javascript">$(function(){0<=window.navigator.userAgent.toLowerCase().indexOf("ucbrowser")&&CaoNiMaDeUc()})</script> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-1632085368384154" crossorigin="anonymous"></script><script src="https://autohotkey.top/gtag.js"></script></head> <body> <h1>GuiControl 对象</h1> <pre class="NoIndent">class Gui.Control extends Object</pre> <p>提供用于修改 GUI 控件并检索有关控件的信息的接口. <a href="Gui.htm#Add">Gui.Add</a>, <a href="Gui.htm#__Item">Gui.__Item</a> 和 <a href="../commands/GuiCtrlFromHwnd.htm">GuiCtrlFromHwnd</a> 返回这种类型的对象.</p> <p>下面使用 "GuiCtrl" 作为任何 <code>Gui.Control</code> 类实例的占位符.</p> <p><code>Gui.Control</code> 作为所有 GUI 控件的基类, 但是每种类型的控件都有自己的类. 以下一些方法是由适当的类的原型, 或 <code>Gui.List</code> 基类定义的. 有关完整列表, 请参阅<a href="index.htm">内置的类</a>.</p> <p>除了从 <a href="Object.htm">Object</a> 继承的方法和属性外, GuiControl 对象还具有以下预定义的方法和属性:</p> <p><strong>属性:</strong></p> <ul> <li><a href="#ClassNN">ClassNN</a>: 检索控件的 ClassNN.</li> <li><a href="#Enabled">Enabled</a>: 检索控件当前交互状态, 或启用或禁用(灰色) 控件.</li> <li><a href="#Focused">Focused</a>: 检索控件当前焦点状态.</li> <li><a href="#Gui">Gui</a>: 检索控件的 Gui 父控件.</li> <li><a href="#Hwnd">Hwnd</a>: 检索控件的 HWND.</li> <li><a href="#Name">Name</a>: 检索或设置控件的显式名称.</li> <li><a href="#Text">Text</a>: 检索或设置控件的文本/标题.</li> <li><a href="#Type">Type</a>: 检索控件的类型.</li> <li><a href="#Value">Value</a>: 检索控件的值或设置新内容到一个包含值的控件中.</li> <li><a href="#Visible">Visible</a>: 检索控件的当前可见状态, 或显示或隐藏它.</li> </ul> <p><strong>方法:</strong></p> <ul> <li><a href="#Add">Add</a>: 在列表框, 下拉列表, 组合框或选项卡控件的当前列表中追加指定的项.</li> <li><a href="#Choose">Choose</a>: 设置 ListBox, DropDownList, ComboBox 或 Tab 控件中的选择为指定值.</li> <li><a href="#Delete">Delete</a>: 删除 ListBox, DropDownList, ComboBox 或 Tab 控件的指定项或所有项.</li> <li><a href="#Focus">Focus</a>: 设置键盘焦点到控件上.</li> <li><a href="#GetPos">GetPos</a>: 获取控件的位置和大小.</li> <li><a href="#Move">Move</a>: 移动和/或调整控件的大小.</li> <li><a href="GuiOnEvent.htm">OnEvent</a>: 注册给定<a href="GuiOnEvent.htm#Control_Events">事件</a>触发时要调用的函数或方法.</li> <li><a href="GuiOnNotify.htm">OnNotify</a>: 注册一个函数或方法, 当通过 <a href="https://msdn.microsoft.com/library/bb775583">WM_NOTIFY</a> 消息接收到控件通知时调用它.</li> <li><a href="#Opt">Opt</a>: 为控件的外观和行为设置各种选项和样式.</li> <li><a href="#Redraw">Redraw</a>: 重绘控件所占的 GUI 窗口区域.</li> <li><a href="#SetFont">SetFont</a>: 设置控件的字体字体, 大小, 样式和/或颜色.</li> <li><a href="../commands/GuiControls.htm#DateTimeFormat">SetFormat</a>: 设置 <a href="../commands/GuiControls.htm#DateTime">DateTime</a> 控件的显示格式.</li> <li><a href="#UseTab">UseTab</a>: 导致随后添加的控件属于选项卡控件的指定选项卡.</li> </ul> <div class="methodShort" id="Type"> <h2>Type</h2> <p>检索控件的类型.</p> <pre class="Syntax">Type := GuiCtrl.Type</pre> <p>有关控件类型的完整列表, 请参阅 <a href="../commands/GuiControls.htm">GUI 控件类型</a>.</p> </div> <div class="methodShort" id="Hwnd"> <h2>Hwnd</h2> <p>检索控件的窗口句柄(HWND). </p> <pre class="Syntax">Hwnd := GuiCtrl.Hwnd</pre> <p>控件的 HWND, 通常与 <a href="../commands/PostMessage.htm">PostMessage</a>, <a href="../commands/SendMessage.htm">SendMessage</a> 和 <a href="../commands/DllCall.htm">DllCall</a> 一起使用.</p> </div> <div class="methodShort" id="Name"> <h2>Name</h2> <p>检索或设置控件的名称.</p> <pre class="Syntax">RetrievedName := GuiCtrl.Name</pre> <pre class="Syntax">GuiCtrl.Name := NewName</pre> <p>控件的名称可以与 <a href="Gui.htm#__Item">Gui.__Item</a> 一起使用, 以检索 GuiControl 对象. 对于大多数具有输入功能的控件, 该名称也被 <a href="Gui.htm#Submit">Gui.Submit</a>.</p> </div> <div class="methodShort" id="ClassNN"> <h2>ClassNN</h2> <p>检索控件的 ClassNN.</p> <pre class="Syntax">ClassNN := GuiCtrl.ClassNN</pre> </div> <div class="methodShort" id="Gui"> <h2>Gui</h2> <p>检索控件的父 GUI 窗口的 <a href="Gui.htm">Gui 对象</a>.</p> <pre class="Syntax">GuiObj := GuiCtrl.Gui</pre> </div> <div class="methodShort" id="Opt"> <h2>Opt</h2> <p>添加或删除控件的各种选项和样式.</p> <pre class="Syntax">GuiCtrl.<span class="func">Opt</span>(Options)</pre> <dl> <dt>Options</dt><dd> <p>类型: <a href="../Concepts.htm#strings">字符串</a></p> <p><a href="../commands/GuiControls.htm">控件专用</a>或<a href="Gui.htm#OtherOptions">通用</a>选项和样式.</p> </dd> </dl> <p>在下面的例子中, 该控件<a href="Gui.htm#Disabled">被禁用</a>, 并且它的 <a href="Gui.htm#Background">background</a> 恢复为系统默认值:</p> <pre>MyEdit.Opt("+Disabled -Background")</pre> <p>在下一个例子中, OK 按钮被变成了新的默认按钮:</p> <pre>OKButton.Opt("+Default")</pre> <p>虽然<a href="../misc/Styles.htm">样式</a>和扩展样式也被识别, 但其中一些样式在控件创建后无法应用或删除. 即使成功应用了某项更改, 控件也可能选择忽略它.</p> </div> <div class="methodShort" id="Move"> <h2>Move</h2> <p>移动和/或调整控件的大小.</p> <pre class="Syntax">GuiCtrl.<span class="func">Move</span>(<span class="optional">X, Y, Width, Height</span>)</pre> <dl> <dt>X, Y</dt><dd> <p>类型: <a href="../Concepts.htm#numbers">整数</a></p> <p>新的位置, 相对于 GUI 窗口的客户端区域, 即不包括标题栏, 菜单栏, 和边框的区域.</p></dd> <dt>Width, Height</dt><dd> <p>类型: <a href="../Concepts.htm#numbers">整数</a></p> <p>新的尺寸.</p></dd> </dl> <p>与 <a href="../commands/ControlMove.htm">ControlMove</a> 不同的是, 本方法将 <a href="Gui.htm#DPIScale">DPI 缩放</a>应用于坐标(除非使用了 <code>-DPIScale</code> 选项).</p> <h3 id="Examples">示例</h3> <pre>MyEdit.Move(10, 20, 200, 100) MyEdit.Move(VarX+10, VarY+5, VarW*2, VarH*1.5)</pre> </div> <div class="methodShort" id="Focus"> <h2>Focus</h2> <p>设置键盘焦点到控件上.</p> <pre class="Syntax">GuiCtrl.<span class="func">Focus</span>()</pre> <p>注意: 要让设置生效, 窗口一般不能处于最小化或隐藏状态.</p> </div> <div class="methodShort" id="Choose"> <h2>Choose</h2> <p>设置 ListBox, DropDownList, ComboBox 或 Tab 控件中的选择为指定值.</p> <pre class="Syntax">GuiCtrl.<span class="func">Choose</span>(Value)</pre> <dl> <dt>Value</dt><dd> <p>类型: <a href="../Concepts.htm#numbers">整数</a>或<a href="../Concepts.htm#strings">字符串</a></p> <p>参数为 1 表示第一个条目, 2 表示第二个, 等等.</p> <p>如果 <em>Value</em> 是一个字符串(甚至是一个数字字符串), 将选择与 <em>Value</em> 相匹配的条目. 搜索不区分大小写. 例如, 如果控件中包含 "UNIX Text" 项目, 指定单词 unix(小写) 就可以选择它. 对于一个<a href="../commands/GuiControls.htm#ListBoxMulti">多选 ListBox</a>, 所有匹配的项目都会被选中.</p> <p>如果 <em>Value</em> 为零或为空, 则当前选择将被移除.</p></dd> </dl> <p>要选择或取消选择一个<a href="../commands/GuiControls.htm#ListBoxMulti">多选 ListBox</a> 中的 <u>所有</u> 项目, 请参照此例:</p> <pre>PostMessage 0x185, 1, -1, ListBox <em>; 选择所有项目. 0x185 是 LB_SETSEL.</em> PostMessage 0x185, 0, -1, ListBox <em>; 取消选择所有项目.</em> ListBox.Choose(0) <em>; 取消选择所有项目.</em></pre> <p>与 <a href="../commands/ControlChooseIndex.htm">ControlChooseIndex</a> 不同, 该方法不会触发 <a href="GuiOnEvent.htm#Change">Change</a> 或 <a href="GuiOnEvent.htm#DoubleClick">DoubleClick</a> 事件.</p> </div> <div class="methodShort" id="UseTab"> <h2>UseTab</h2> <p>使随后添加的控件属于 Tab 控件的指定标签.</p> <pre class="Syntax">GuiCtrl.<span class="func">UseTab</span>(<span class="optional">Value, ExactMatch</span>)</pre> <dl> <dt>Value</dt><dd> <p>类型: <a href="../Concepts.htm#numbers">整数</a>或<a href="../Concepts.htm#strings">字符串</a></p> <p>参数为 1 表示第一个条目, 2 表示第二个, 等等. 如果 <em>Value</em> 不是一个整数, 前面部分与 <em>Value</em> 匹配的标签将被使用. 搜索不区分大小写. 例如, 如果一个控件包含 "UNIX Text" 标签, 指定单词 unix(小写) 就可以使用它. 如果 <em>Value</em> 为 0, 是一个空白字符串或被省略, 随后的控件将被添加到 Tab 控件之外.</p> </dd> <dt>ExactMatch</dt><dd> <p>类型: <a href="../Concepts.htm#boolean">整数(布尔值)</a></p> <p>如果该参数为 true, <em>Value</em> 必须完全匹配, 但不区分大小写.</p> </dd> </dl> </div> <div class="methodShort" id="Add"> <h2>Add</h2> <p>将列表项目添加到 ListBox, DropDownList 或 ComboBox, 或将标签添加到 Tab 控件中.</p> <pre class="Syntax">GuiCtrl.<span class="func">Add</span>(Items)</pre> <dl> <dt>Items</dt><dd> <p>类型: <a href="../Concepts.htm#objects">Array(数组)</a></p> <p>要插入到控件列表末尾的字符串数组(例如 <code>["Red","Green","Blue"]</code>). 要替换(覆盖) 列表, 请事先使用 <a href="#Delete">GuiCtrl.Delete</a>.</p> </dd> </dl> <p>使用 <a href="#Choose">GuiCtrl.Choose</a> 选择一个项目.</p> <p><strong>相关:</strong> <a href="../commands/ListView.htm#Add">ListView.Add</a>, <a href="../commands/TreeView.htm#Add">TreeView.Add</a></p> </div> <div class="methodShort" id="Delete"> <h2>Delete</h2> <p>删除 ListBox, DropDownList, ComboBox 或 Tab 控件的指定项或所有项.</p> <pre class="Syntax">GuiCtrl.<span class="func">Delete</span>(<span class="optional">Value</span>)</pre> <dl> <dt>Value</dt><dd> <p>类型: <a href="../Concepts.htm#numbers">整数</a></p> <p>参数为 1 表示第一个条目, 2 表示第二个, 等等. 如果省略, 则删除所有条目.</p> </dd> </dl> <p>对于 tab 控件, 您应该注意到, 一个标签的子控件会与其原始的标签编号相关联; 也就是说, 它们永远不会与其标签的实际显示名称相关联. 因此, 重命名或删除一个选项卡不会改变子控件所属的选项卡号. 例如, 如果有三个选项卡 <code>["Red","Green","Blue"]</code> 并且通过 <code>MyTab.Delete(2)</code> 删除了第二个选项卡, 则原来与 Green 相关联的子控件现在将与 Blue 相关联. 由于这种行为, 一般只应删除最后的标签页. 以这种方式删除的标签页可以在以后再添加回来, 届时它们将重新获得原来的控件集.</p> <p><strong>相关:</strong> <a href="../commands/ListView.htm#Delete">ListView.Delete</a>, <a href="../commands/TreeView.htm#Delete">TreeView.Delete</a></p> </div> <div class="methodShort" id="Value"> <h2>Value</h2> <p>检索或设置控件的内容.</p> <pre class="Syntax">RetrievedValue := GuiCtrl.Value</pre> <pre class="Syntax">GuiCtrl.Value := NewValue</pre> <p>注意: 如果控件不包含值, <em>RetrievedValue</em> 将是空白, 并且赋值 <em>NewValue</em> 将引发错误. 无效的值会抛出异常.</p> <p>以下控件类型包含值:</p> <h3 id="Value_Picture">Picture</h3> <p><em>RetrievedValue</em> 是创建 <a href="../commands/GuiControls.htm#Picture">Picture</a> 控件时指定的图片文件名. 即使指定了新的图片文件名, 这个名称也不会改变.</p> <p><em>NewValue</em> 是要加载的新图片的文件名(或<a href="../misc/ImageHandles.htm">句柄</a>)(关于支持的文件类型, 请参阅 <a href="../commands/GuiControls.htm#Picture">Picture</a>). 可以在文件名前指定零个或多个下列选项: <code>*wN</code>(宽度 N), <code>*hN</code>(高度 N) 和 <code>*IconN</code>(DLL 或 EXE 文件中的图标组编号 N). 在下面的例子中, 将加载第二个图标组中的默认图标, 设置宽度为 100 以及通过 "保持高宽比" 自动设置高度: <code>MyPic.Value := "*icon2 *w100 *h-1 C:\My Application.exe"</code>. 指定 <code>*w0 *h0</code> 使用图像的实际宽度和高度. 如果同时省略 <code>*w</code> 和 <code>*h</code>, 则调整图像以适应控件当前的大小. 从多图标的 .ICO 文件中加载时, 指定宽度和高度也决定了加载哪个图标. 注意: 在最后的选项和文件名之间只使用一个空格或制表符; 任何其他空格和制表符都会被视为文件名的一部分.</p> <h3 id="Value_Text">Text</h3> <p><em>RetrievedValue</em> 是 <a href="../commands/GuiControls.htm#Text">Text</a> 控件的的文本/标题.</p> <p><em>NewValue</em> 是控件的新文本. 由于控件不会自动展开, 所以如果需要扩大控件, 请使用 <code>GuiCtrl.<a href="#Move">Move</a>("w300")</code>.</p> <h3 id="Value_Edit">Edit</h3> <p><em>RetrievedValue</em> 是 <a href="../commands/GuiControls.htm#Edit">Edit</a> 件的当前内容. 对于多行控件, 文本中的任何换行符将以普通换行符(`n) 表示, 而不是 <a href="../commands/ControlGetText.htm">ControlGetText</a> 和 <a href="../commands/ControlSetText.htm">ControlSetText</a> 等非 GUI 函数所使用传统的 CR+LF(`r`n).</p> <p><em>NewValue</em> 是新的内容. 对于多行控件, <em>NewValue</em> 中任何缺少前回车(`r) 的换行(`n) 都会被自动转换为 CR+LF(`r`n) 以使其正确显示. 然而, 这通常不是一个问题, 因为当使用 <a href="Gui.htm#Submit">MyGui.Submit</a> 或检索这个值时, 这个转换会自动反过来, 用 LF(`n) 替换 CR+LF.</p> <p>要检索或设置文本, 而不将 `n 转换为 `r`n, 请使用 <a href="#Text">GuiCtrl.Text</a>.</p> <h3 id="Value_Hotkey">Hotkey</h3> <p>如果 <a href="../commands/GuiControls.htm#Hotkey">Hotkey</a> 控件中有热键, 则 <em>RetrievedValue</em> 为修饰符和键名; 否则为空. 例如: <code>^!C</code>, <code>^Home</code>, <code>+^NumpadHome</code>.</p> <p><em>NewValue</em> 可以是一组修饰符和键名, 或空白以清空该控件. 例如: <code>^!c</code>, <code>^Numpad1</code>, <code>+Home</code>. 支持的修饰符仅包含 ^(Ctrl), !(Alt), 和 +(Shift). 请参阅<a href="../KeyList.htm">按键列表</a>了解可用的按键名称.</p> <h3 id="Value_Checkbox_Radio">Checkbox / Radio</h3> <p>如果选中了 <a href="../commands/GuiControls.htm#Checkbox">Checkbox</a> 或 <a href="../commands/GuiControls.htm#Radio">Radio</a> 控件, 则 <em>RetrievedValue</em> 为 1, 如果未选中, 则为 0, 如果有灰色复选标记, 则为 -1.</p> <p><em>NewValue</em> 可以是 0 来取消选中按钮, 1 来选中它, 或者 -1 来给它一个灰色的复选标记. 对于 Radio 按钮, 如果有一个按钮被选中(打开) 并且它是一个多个单选按钮组的成员, 那么该组中的其他单选按钮将被自动取消选中.</p> <p>如果要获取或设置控件的文本/标题, 请使用 <a href="#Text">GuiCtrl.Text</a>.</p> <h3 id="Value_DateTime_MonthCal">DateTime / MonthCal</h3> <p><em>RetrievedValue</em> 是当前在 <a href="../commands/GuiControls.htm#DateTime">DateTime</a> 或 <a href="../commands/GuiControls.htm#MonthCal">MonthCal</a> 控件中选择的 <a href="../commands/FileSetTime.htm#YYYYMMDD">YYYYMMDDHH24MISS</a> 格式的日期-时间戳.</p> <p><em>NewValue</em> 是 <a href="../commands/FileSetTime.htm#YYYYMMDD">YYYYMMDDHH24MISS</a> 格式的日期-时间戳. 指定 <code>A_Now</code> 来使用当前日期和时间(今天). 对于 DateTime 控件, <em>NewValue</em> 可以是一个空字符串, 以使该控件没有选择日期/时间(如果它在创建时含有<a href="../commands/GuiControls.htm#ChooseNone">这个能力</a>). 对于 MonthCal 控件, 如果控件是<a href="../commands/GuiControls.htm#MonthCalMulti">多选的</a>, 则可以指定一个日期范围.</p> <h3 id="Value_UpDown_Slider_Progress">UpDown / Slider / Progress</h3> <p><em>RetrievedValue</em>是 <a href="../commands/GuiControls.htm#UpDown">UpDown</a>, <a href="../commands/GuiControls.htm#Slider">Slider</a> 或 <a href="../commands/GuiControls.htm#Progress">Progress</a> 控件的当前位置.</p> <p><em>NewValue</em> 是控件的新位置, 例如 <code>MySlider.Value := 10</code>. 要调整一个相对的数值, 请使用运算符 <code>+=</code>, <code>-=</code>, <code>++</code> 或 <code>--</code> 代替 <code>:=</code>. 如果新的位置超出了控件的范围, 控件一般会被设置为最近的有效值.</p> <h3 id="Value_Tab_DropDownList_ComboBox_ListBox">Tab / DropDownList / ComboBox / ListBox</h3> <p><em>RetrievedValue</em> 是当前选中的项目/标签在 <a href="../commands/GuiControls.htm#Tab">Tab</a>, <a href="../commands/GuiControls.htm#DropDownList">DropDownList</a>, <a href="../commands/GuiControls.htm#ComboBox">ComboBox</a> 或 <a href="../commands/GuiControls.htm#ListBox">ListBox</a> 控件中的位置. 如果没有选择, 则返回 0. 如果在 ComboBox 中输入了文本, 则使用第一个匹配文本的项目. 如果没有匹配的项目, 即使控件中有文本, 结果也是 0. 对于一个<a href="../commands/GuiControls.htm#ListBoxMulti">多选 ListBox</a>, 结果是一个数字数组(如果没有选择任何项目, 则为空).</p> <p><em>NewValue</em> 是要选择的单个项目/标签的位置, 或者为零来清除当前的选择(即使对 Tab 控件也有效). 要选择多个项目, 请重复调用 <a href="#Choose">GuiCtrl.Choose</a>.</p> <p>要获取或设置选中项的文本而不是其位置, 请使用 <a href="#Text">GuiCtrl.Text</a>.</p> <h3 id="Value_ActiveX">ActiveX</h3> <p><em>RetrievedValue</em> 是 <a href="../commands/GuiControls.htm#ActiveX">ActiveX</a> 控件的 ActiveX 对象. 例如, 如果控件是用文本 <em>Shell.Explorer</em> 创建的, 这是一个 <a href="https://msdn.microsoft.com/library/aa752043">WebBrowser</a> 对象. 每次都返回相同的<a href="../commands/ComValue.htm">包装器对象</a>.</p> </div> <div class="methodShort" id="Text"> <h2>Text</h2> <p>检索或设置控件的文本/标题.</p> <pre class="Syntax">RetrievedText := GuiCtrl.Text</pre> <pre class="Syntax">GuiCtrl.Text := NewText</pre> <p>注意: 如果控件没有可见的标题文本和文本值, 则此属性对应于控件的隐藏标题文本(如 <a href="../commands/ControlGetText.htm">ControlGetText</a>/<a href="../commands/ControlSetText.htm">ControlSetText</a>).</p> <p><strong>标题/显示文本</strong>: <em>Text</em> 属性可检索或设置以下控件类型的标题/显示文本: <a href="../commands/GuiControls.htm#Button">Button</a>, <a href="../commands/GuiControls.htm#Checkbox">Checkbox</a>, <a href="../commands/GuiControls.htm#Edit">Edit</a>, <a href="../commands/GuiControls.htm#GroupBox">GroupBox</a>, <a href="../commands/GuiControls.htm#Link">Link</a>, <a href="../commands/GuiControls.htm#Radio">Radio</a>, <a href="../commands/GuiControls.htm#Text">Text</a>. 由于控件不会自动展开, 请使用 <code>GuiCtrl.<a href="#Move">Move</a>("w300")</code> 或类似的方法.</p> <p><strong><a href="../commands/GuiControls.htm#DateTime">DateTime</a></strong>: <em>Text</em> 属性检索了控件显示的格式化文本. 不支持为控件指定格式化的日期/时间字符串. 要更改显示的日期/时间, 请为 <a href="#Value">GuiCtrl.Value</a> 指定一个 <a href="../commands/FileSetTime.htm#YYYYMMDD">YYYYMMDDHH24MISS</a> 格式的日期-时间戳.</p> <p><strong><a href="../commands/GuiControls.htm#Edit">Edit</a></strong>: 与其他控件一样, 文本按原样检索或设置; 不用预先进行尾转换. 要检索或设置多行 Edit 控件的文本, 同时在 <code>`r`n</code> 和 <code>`n</code> 之间进行转换, 请使用 <a href="#Value">GuiCtrl.Value</a>.</p> <p><strong><a href="../commands/GuiControls.htm#StatusBar">StatusBar</a></strong>: <em>Text</em> 属性仅检索或设置第一部分的文本(使用 <a href="../commands/GuiControls.htm#SB_SetText">SB.SetText</a> 可获得更大的灵活性).</p> <p><strong>List 项目文本</strong>: <em>Text</em> 属性为以下控件类型检索或设置当前选中的项目/标签: <a href="../commands/GuiControls.htm#Tab">Tab</a>, <a href="../commands/GuiControls.htm#DropDownList">DropDownList</a>, <a href="../commands/GuiControls.htm#ComboBox">ComboBox</a>, <a href="../commands/GuiControls.htm#ListBox">ListBox</a>.</p> <p><em>NewText</em> 应该是要选择的项目/标签的全部文本(不区分大小写).</p> <p>对于 ComboBox, 如果没有选中的项目, 则会检索控件编辑栏中的文本. 对于其他控件, <em>RetrievedText</em> 为空/空白. 同样, 如果 <em>NewText</em> 为空/空白, 则当前项/标签将被取消选择.</p> <p>对于一个<a href="../commands/GuiControls.htm#ListBoxMulti">多选 ListBox</a>, <em>RetrievedText</em> 是一个数组. <em>NewText</em> 不能是一个数组, 但如果多个项目匹配, 它们都会被选择. 要用不同的文本选择多个项目, 请重复调用 <a href="#Choose">GuiCtrl.Choose</a>.</p> <p>要根据项目的位置编号而不是文本选择项目, 请使用 <a href="#Value">GuiCtrl.Value</a>.</p> </div> <div class="methodShort" id="Redraw"> <h2>Redraw</h2> <p>重绘控件所占的 GUI 窗口区域.</p> <pre class="Syntax">GuiCtrl.<span class="func">Redraw</span>()</pre> <p>虽然当重复和快速调用时, 可能会导致不必要的闪烁效果, 但它解决了某些控件类型(如 <a href="../commands/GuiControls.htm#GroupBox">GroupBox</a>) 的显示重影的问题.</p> </div> <div class="methodShort" id="SetFont"> <h2>SetFont</h2> <p>设置控件的字体字体, 大小, 样式和/或颜色.</p> <p>注意: 省略这两个参数, 以将字体设置为 GUI 的当前字体, 如 <a href="Gui.htm#SetFont">Gui.SetFont</a> 所设置. 否则, 任何未指定的字体属性将从控件的先前字体中复制. 只有在 <em>Options</em> 中指定的情况下, 文本颜色才会改变.</p> <pre class="Syntax">GuiCtrl.<span class="func">SetFont</span>(<span class="optional">Options, FontName</span>)</pre> <p>关于这两个参数的详细说明, 请参阅 <a href="Gui.htm#SetFont">Gui.SetFont</a>.</p> </div> <div class="methodShort" id="Enabled"> <h2>Enabled</h2> <p>检索控件当前交互状态, 或启用或禁用(灰色) 控件.</p> <pre class="Syntax">RetrievedState := GuiCtrl.Enabled</pre> <pre class="Syntax">GuiCtrl.Enabled := NewState</pre> <p>对于 Tab 控件, 这也将启用或禁用该 Tab 的所有子控件. 然而, 任何通过 <code>GuiCtrl.Enabled := false</code> 显式禁用的子控件将记住该设置, 因此即使在其 Tab 控件被重新启用后也会保持禁用状态.</p> </div> <div class="methodShort" id="Visible"> <h2>Visible</h2> <p>检索控件的当前可见状态, 或显示或隐藏它.</p> <pre class="Syntax">RetrievedState := GuiCtrl.Visible</pre> <pre class="Syntax">GuiCtrl.Visible := NewState</pre> <p>对于 Tab 控件, 这也将显示或隐藏该 Tab 的所有子控件. 如果您还想阻止一个控件的快捷键(下划线字母) 工作, 通过 <code>GuiCtrl.Enabled := false</code> 禁用该控件.</p> </div> <div class="methodShort" id="Focused"> <h2>Focused</h2> <p>检索控件当前焦点状态.</p> <pre class="Syntax">RetrievedState := GuiCtrl.Focused</pre> <p>注意: 要让设置生效, 窗口一般不能处于最小化或隐藏状态.</p> </div> <div class="methodShort" id="GetPos"> <h2>GetPos</h2> <p>获取控件的位置和大小.</p> <pre class="Syntax">GuiCtrl.<span class="func">GetPos</span>(<span class="optional">X, Y, Width, Height</span>)</pre> <p>每个参数都应该是一个变量<a href="../Concepts.htm#variable-references">引用</a>, 在其中存储各自的坐标. 位置是相对于 GUI 窗口的客户端区域而言的, 客户端区域是不包括标题栏, 菜单栏和边框的区域.</p> <p>与 <a href="../commands/ControlGetPos.htm">ControlGetPos</a> 不同的是, 本方法对返回的坐标应用了 <a href="Gui.htm#DPIScale">DPI 缩放</a>(除非使用了 <code>-DPIScale</code> 选项).</p> <p>示例:</p> <pre>MyEdit.GetPos(&amp;x, &amp;y, &amp;w, &amp;h) MsgBox "The X coordinate is " x ". The Y coordinate is " y ". The width is " w ". The height is " h "." </pre> </div> <a href="https://dftg.net">dftg</a><!-- Cloudflare Pages Analytics --><script defer src='https://static.cloudflareinsights.com/beacon.min.js' data-cf-beacon='{"token": "d5a9c4fcb9b6482fa53ce820d892f969"}'></script><!-- Cloudflare Pages Analytics --><script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"rayId":"93fc1b1888225314","version":"2025.4.0-1-g37f21b1","r":1,"serverTiming":{"name":{"cfExtPri":true,"cfL4":true,"cfSpeedBrain":true,"cfCacheStatus":true}},"token":"51750bb5dc4f40cc91a5ec55c63bbc01","b":1}' crossorigin="anonymous"></script> </body> </html>