ControlMove


移动或者重新调整一个控件的大小。

ControlMove, Control, X, Y, Width, Height [, WinTitle, WinText, ExcludeTitle, ExcludeText]

参数

Control

可以是控件的名称/文本或 ClassNN (控件的 classname(类名)和序号),它们都可以通过 Window Spy 来确定。当使用名称/文本时,matching behavior (匹配模式)通过 SetTitleMatchMode 决定。如果此 parameter(参数)为空,目标窗口的顶端控件将被使用。

要对一个控件的 HWND (窗口 handle (句柄) )进行操作,将 Control 参数留空并为 WinTitle 参数指定 ahk_id %ControlHwnd% (这样即使当 DetectHiddenWindows 是 Off 状态,它也能对隐藏的控件起作用)。一个控件的 HWND 往往由 ControlGet HwndMouseGetPos& nbsp;或者 DllCall 取得。

X, Y Control 左上角的 X 和 Y 方向的新坐标(用像素单位),它们可以是 expressions(表 达式)。如果任何一个坐标参数为空,那么那种尺寸的 Control 的位置就不会改变。坐标是相对于 Control 的父窗口的左上角而言的; ControlGetPos 或者 Window Spy 能被用来确定它们。
Width, Height Control 新的高度和宽度(用像素单位),也可以是 expressions(表达 式)。如果任何一个参数为空或省略,那种尺寸的 Control 的大小将不被改变。
WinTitle
目标窗口的标题或副标题(匹配模式由 SetTitleMatchMode 决定)。如果此参数和后面的3个参数被省略,
Last Found Window(最近找到的窗口)将被使用。如果此参数是字母 A 并且后面的三个参数被省略,active(激活的)窗口将被使用。要使用一个窗口类,指定 ahk_class 确切的类名(通过 Window Spy 显示)。要使用一个 
process identifier (PID)(进程标识符),指定 ahk_pid %包含PID的变量% 。要使用一个 
window group(窗口组),指定 ahk_group GroupName 。要使用一个窗口的 
unique ID number(唯一标识符编号),指定 ahk_id %包含ID的变量% 。通过指定 
multiple criteria(多个条件)缩小搜索范围。例如: My File.txt ahk_class Notepad
WinText 如果用到,此参数必须是目标窗口的一个单独文本对象的 substring(子字串)(像内置的 Window Spy 工具显示的一样)。如果 DetectHiddenText 是 ON 的状态,隐藏的文本对象将被探测。
ExcludeTitle 标题含有此参数值的窗口将不被考虑。
ExcludeText 文本含有此参数值的窗口将不被考虑。

ErrorLevel

若有错误发生则 ErrorLevel 的值将被设为 1 ,否则为 0 。

注意

为了改善可靠性,每次该命令执行后自动会有一个延迟。这个延迟可以通过 SetControlDelay 来 改变。

窗口标题和文本是 case sensitive(区分大小写)的。隐藏的窗口将不被探测,除非 DetectHiddenWindows 已被打开。

相关命令

ControlGetPos, WinMove, SetControlDelay, Control, ControlGet, ControlGetText, ControlSetText, ControlClick, ControlFocus, ControlSend

示例

SetTimer, ControlMoveTimer
InputBox, OutputVar, My Input Box
return

ControlMoveTimer:
IfWinNotExist, My Input Box
return
; 否则上面的窗口将为我们设为 the "last found" window(最近找到的窗口):
SetTimer, ControlMoveTimer, off
WinActivate
ControlMove, OK, 10, , 200 ; 将 OK 按钮移至左侧并增加其宽度。
return
翻译:坛友baggio1987   修正:天堂之门 menk33@163.com 2008年8月4日