<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>ControlFocus</h1> <p>设置输入焦点到窗口的指定控件上.</p> <pre class="Syntax"><span class="func">ControlFocus</span> Control <span class="optional">, WinTitle, WinText, ExcludeTitle, ExcludeText</span></pre> <h2 id="Parameters">参数</h2> <dl> <dt>Control</dt> <dd> <p>类型: <a href="../Concepts.htm#strings">字符串</a>, <a href="../Concepts.htm#numbers">整数</a>或<a href="../Objects.htm">对象</a></p> <p>控件的 ClassNN, 文本或 HWND, 或具有 <code>Hwnd</code> 属性的对象. 有关详情, 请参阅 <a href="Control.htm#Parameter">Control 参数</a>.</p> </dd> <dt>WinTitle, WinText, ExcludeTitle, ExcludeText</dt> <dd> <p>类型: <a href="../Concepts.htm#strings">字符串</a>, <a href="../Concepts.htm#numbers">整数</a>或<a href="../Objects.htm">对象</a></p> <p>如果这些都未设置或省略, 将使用<a href="../misc/WinTitle.htm#LastFoundWindow">上次找到的窗口</a>. 否则, 为 <em>WinTitle</em> 指定<a href="../misc/WinTitle.htm">窗口标题或其他条件</a>, 来标识目标窗口, 和/或为 <em>WinText</em> 指定目标窗口的单个文本元素的子字符串(由包含的 Window Spy 实用程序显示). 如果 <a href="DetectHiddenText.htm">DetectHiddenText</a> 已经打开, 则检测隐藏文本元素. 标题或文本包含 <em>ExcludeTitle</em> 或 <em>ExcludeText</em> 的窗口将不被考虑.</p> </dd> </dl> <h2 id="Error_Handling">错误处理</h2> <p>如果找不到窗口或控件, 则抛出 <a href="Error.htm#TargetError">TargetError</a>.</p> <h2 id="Remarks">备注</h2> <p>要让设置生效, 控件所在的窗口一般不能处于最小化或隐藏状态.</p> <p>为了提高可靠性, 每次使用此函数后都会自动执行延迟. 该延迟可以通过 <a href="SetControlDelay.htm">SetControlDelay</a> 来更改.</p> <p>窗口标题和文本是区分大小写的. 除非 <a href="DetectHiddenWindows.htm">DetectHiddenWindows</a> 被打开, 否则不会检测隐藏窗口.</p> <p id="WM_NEXTDLGCTL">当控件被聚焦以响应用户输入(例如按 Tab 键) 时, 对话管理器应用附加效果, 这些效果独立于具有焦点的控件. 这些效果不是由 ControlFocus 应用的, 因此以下限制适用:</p> <ul> <li>聚焦按钮不会自动使其成为默认按钮, 这与通过用户输入对焦按钮通常会发生的情况不同. 默认按钮通常可以通过按 Enter 来激活.</li> <li>如果先前的用户输入导致默认按钮被临时更改, 聚焦非按钮控件不会自动将默认高亮显示恢复到实际的默认按钮. 按 Enter 键可以激活默认按钮, 即使它没有突出显示.</li> <li>聚焦编辑控件不会自动选择其文本. 相反, 插入点(插入) 通常位于控件上次有焦点时的位置.</li> </ul> <p><a href="https://learn.microsoft.com/windows/win32/dlgbox/wm-nextdlgctl">WM_NEXTDLGCTL</a> 消息可以用来聚焦控件并应用这些附加效果. 例如:</p> <pre>WinExist("A") <em>; 将最后找到的窗口设置为活动窗口</em> ControlGet, hWndControl, Hwnd,, Button1 <em>; 获取第一个按钮的 HWND</em> SendMessage, 0x0028, hWndControl, True <em>; 0x0028 对应 WM_NEXTDLGCTL</em></pre> <h2 id="Related">相关</h2> <p><a href="SetControlDelay.htm">SetControlDelay</a>, <a href="ControlGetFocus.htm">ControlGetFocus</a>, <a href="Control.htm">控件函数</a></p> <h2 id="Examples">示例</h2> <div class="ex" id="ExBasic"> <p><a class="ex_number" href="#ExBasic"></a> 设置焦点到 OK 按钮上.</p> <pre>ControlFocus "OK", "Some Window Title" <em>; 设置焦点到 OK 按钮上</em></pre> </div> <a href="https://dftg.net">dftg</a></body> </html>