编辑控件的AutoHotkey ControlFocus失败

时间:2014-03-18 08:49:16

标签: autohotkey

我有一个由AutoHotkey创建的窗口,上面有一个按钮和一个编辑控件。 我想要做的是在单击按钮后将输入焦点恢复到Edit控件。通过WinSpy(非常感谢Robert Kuster),我有关于Edit控件的以下信息。

Handle : 0x00330786 (changes every time I start the application)
Control ID : 4
Class : Edit
Window Title : some window title
Parent Window Class : AutoHotkeyGUI

以下是我在剧本中使用的声明。

ControlFocus, MyEdit, some window title

BTW,AutoHotkey帮助建议保留控件名称,并将目标控件的HWND替换为窗口标题。请指导如何实现这一目标。

1 个答案:

答案 0 :(得分:2)

下面是一段使用

的Autohotkey脚本
GuiControl, Focus, ControlName

单击“显示我的进度”按钮后,将输入焦点更改为编辑控件(即完成)。

%WinTitle% = some window title
Gui, Add, Text, vLabel cWhite, Reading Completion
Gui, Add, Edit, vCompletion ym w40  ; The ym option starts a new column of controls.
Gui, Add, Progress, vMyProgress w300 h30 xp+50  yp-5
Gui, Add, Button, xp yp+50, Show My Progress
GuiControl,, Completion, %iniCompletion%
Gui, Show, h140, %WinTitle%
ControlClick, Show My Progress, %WinTitle%
**GuiControl, Focus, Completion**
return

ButtonShowMyProgress:
Gui, Submit, NoHide  ; Save the input from the user to each control's associated variable.
MyCompletionPercentage:=(Completion / (PageEnd-PageStart+1)) * 100
PercentageRounded:=Round(MyCompletionPercentage,0)
GuiControl,, MyProgress, %PercentageRounded%
**GuiControl, Focus, Completion**
return

非常感谢MCL和BGM的评论...

  

如果我理解正确,您可以使用AHK构建自己的GUI。为什么   你不用GuiControl,Focus吗? - MCL

     

MCL有一个观点。 GuiControl是autohotkey使用它自己的控件的方式。如果您正在使用控件,则只能使用ControlFocus   外窗。 MCL - 也许你应该把它作为答案。 - BGM