请教激活并且移动多个同名窗口
像上面三个窗口,如何能在这三个窗口来回切换
比如:先激活1号窗口,把它移动到0,0坐标
然后激活2号窗口,把它移动到100,100坐标
然后激活3号窗口,把它移动到200,200坐标
帮助里面有这个GUISwitch ( 窗口句柄 [,标签项目ID] )
切换使用 GUI 函数的"当前"窗口.
这个已经试了,无效。 回复 1# 白隼
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("我的窗口", 221, 312, 192, 114)
$Label1 = GUICtrlCreateLabel("我的窗口", 32, 80, 52, 17)
$Form2 = GUICreate("我的窗口", 221, 312, 192, 114)
$Label2 = GUICtrlCreateLabel("我的窗口", 32, 80, 52, 17)
$Form3 = GUICreate("我的窗口", 221, 312, 192, 114)
$Label3 = GUICtrlCreateLabel("我的窗口", 32, 80, 52, 17)
GUISetState(@SW_SHOW,$Form1)
GUISetState(@SW_SHOW,$Form2)
GUISetState(@SW_SHOW,$Form3)
MsgBox(0,"提示","点击确定开始移动窗口!")
MoveWindow("我的窗口")
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func MoveWindow($_title="")
Local $winlist=WinList($_title)
If $winlist>0 Then
For $i= 1To$winlist
WinMove( $winlist[$i] ,"",Random(1,@DesktopWidth,1),Random(1,@DesktopHeight,1))
Next
EndIf
EndFunc
WinActivate(窗口句柄)
WinMove(窗口句柄, '', x坐标, Y坐标) 本帖最后由 skyfree 于 2014-4-13 17:43 编辑
由于楼主没发代码,所以我也只能做个简单例子。并不是完全按你的需求做,但可实现你的要求,你稍加更改就可以了。其实你只要明白,WinMove不一定需要的是标题名,使用窗体ID是一样的。而且如果只是单纯移动的话不需要先激活窗体。
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("我的窗口", 221, 312, 192, 114)
$Label1 = GUICtrlCreateLabel("我的窗口", 32, 80, 52, 17)
$Form2 = GUICreate("我的窗口", 221, 312, 192 + 300, 114)
$Label2 = GUICtrlCreateLabel("我的窗口", 32, 80, 52, 17)
$Form3 = GUICreate("我的窗口", 221, 312, 192 + 600, 114)
$Label3 = GUICtrlCreateLabel("我的窗口", 32, 80, 52, 17)
GUISetState(@SW_SHOW, $Form1)
GUISetState(@SW_SHOW, $Form2)
GUISetState(@SW_SHOW, $Form3)
Sleep(1000)
_FormMove()
Sleep(2000)
Exit
Func _FormMove()
WinMove($Form1, "", 192 + 100, 214 + 100)
WinMove($Form2, "", 192 + 300 + 100, 214 + 100)
WinMove($Form3, "", 192 + 600 + 100, 214 + 100)
EndFunc ;==>_FormMove
页:
[1]