找回密码
 加入
搜索
查看: 5937|回复: 14

[GUI管理] 窗口跟随例子报错,大家帮我试试![已解决]

  [复制链接]
发表于 2011-12-25 20:02:31 | 显示全部楼层 |阅读模式
本帖最后由 bdancerlc 于 2011-12-25 21:16 编辑

原帖:http://www.autoitx.com/forum.php ... hlight=%B8%FA%CB%E6
错误提示:

错误: $WM_MOVING 上一次定义为一个 'Const' 变量..
Global Const $WM_MOVING = 0x216


#include <StructureConstants.au3>
#include <WindowsConstants.au3>
Global Const $WM_MOVING = 0x216
Global $from2_s = False
$From1 = GUICreate('移动我', 300, 300, 300, 300)
$pos1 = WinGetPos($From1)
GUIRegisterMsg($WM_MOVING, 'WM_MOVING')
GUIRegisterMsg(0x3, "WM_MOVE")
GUISetState()
$From2 = GUICreate('', 300, 300, 600, 300, -1, -1, $From1)
GUISetState()
$from1_pos = WinGetPos($From1)
Do
Until GUIGetMsg() = -3
Func WM_MOVING($hWnd, $iMsg, $iwParam, $ilParam)
        GUIRegisterMsg(0x3, "")
        If $hWnd = $From1 And $from2_s = False Then
                $tBuffer = DllStructCreate($tagRECT, $ilParam) ;$tagRECT结构,包含左、顶、右、底坐标
                $iLeft = DllStructGetData($tBuffer, "Left")
                $iTop = DllStructGetData($tBuffer, "Top")

                WinMove($From2, "", $iLeft + $from1_pos[2], $iTop)
                WinMove($From1, "", $iLeft, $iTop)
                Return
        Else
                $from2_s = True
        EndIf
        If $hWnd = $From2 Then
                $tBuffer = DllStructCreate($tagRECT, $ilParam) ;$tagRECT结构,包含左、顶、右、底坐标
                $iLeft = DllStructGetData($tBuffer, "Left")
                $iTop = DllStructGetData($tBuffer, "Top")
                $from1_pos = WinGetPos($From1)
                $x = $from1_pos[0] + $from1_pos[2] - $iLeft
                $y = $from1_pos[1] - $iTop
                If Abs($x) < 30 And Abs($y) < 30 Then WinMove($From2, "", $from1_pos[0] + $from1_pos[2], $from1_pos[1])
        EndIf
        GUIRegisterMsg(0x3, "WM_MOVE")
EndFunc   ;==>WM_MOVING
Func WM_MOVE()
        $from1_pos = WinGetPos($From1)
        $from2_pos = WinGetPos($From2)
        $x = $from1_pos[0] + $from1_pos[2] - $from2_pos[0]
        $y = $from1_pos[1] - $from2_pos[1]
        If Abs($x) < 30 And Abs($y) < 30 Then
                WinMove($From2, "", $from1_pos[0] + $from1_pos[2], $from1_pos[1])
                $from2_s = False
        EndIf
EndFunc   ;==>WM_MOVE
发表于 2011-12-25 20:39:36 | 显示全部楼层
将一二行调换下位置试试~
 楼主| 发表于 2011-12-25 20:53:36 | 显示全部楼层
回复 2# afan


    还是提示一样的错误:

错误: $WM_MOVING 上一次定义为一个 'Const' 变量..
Global Const $WM_MOVING = 0x216
发表于 2011-12-25 20:54:52 | 显示全部楼层
回复  afan


    还是提示一样的错误:
bdancerlc 发表于 2011-12-25 20:53


如果是这个原因,注释掉第3行~
 楼主| 发表于 2011-12-25 21:16:24 | 显示全部楼层
回复 4# afan


    谢谢,确实注释了第三行就可以运行了,这个吸附跟随效果中,移动窗口有重影...
    哎...  不知道a版有没有更好的办法?...
    我先 修改标题...[已解决]
    不纠结于这段代码了...
发表于 2011-12-25 21:19:49 | 显示全部楼层
回复  afan


    ...移动窗口有重影...
     ...
bdancerlc 发表于 2011-12-25 21:16



    我试了下,没发现什么重影…
 楼主| 发表于 2011-12-25 21:21:56 | 显示全部楼层
回复 6# afan


    .....



悲剧,又只有我这边有这问题?
......

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2011-12-25 21:22:43 | 显示全部楼层
回复  afan


    .....



悲剧,又只有我这边有这问题?
......
bdancerlc 发表于 2011-12-25 21:21



    又是你改系统惹的~
 楼主| 发表于 2011-12-25 21:25:53 | 显示全部楼层
回复 8# afan

我晕,我是真没 修改系统啊,被A版一说,我这跳进黄河也洗不清了!  

话说是不是机子要清理灰尘了,我好像有1年多没清理了...
发表于 2011-12-25 21:30:53 | 显示全部楼层
回复  afan

我晕,我是真没 修改系统啊,被A版一说,我这跳进黄河也洗不清了!  

话说 ...
bdancerlc 发表于 2011-12-25 21:25



    那是我记错人了…… 呵呵
 楼主| 发表于 2011-12-25 21:39:32 | 显示全部楼层
回复 10# afan


    上次你也说我 DIY 系统来着, 应该说的是我..
    我现在不想折腾系统了,那玩意需要很好的认识系统比较全面的知识才能玩好!
    我一直对DIY 软件比较有兴趣,比如给某个软件整个插件什么的,丰富软件功能...
    不知道用AU3有没有比较好的方式来做插件..
    当然,通过模拟点击之类的可以简单的实现,但是感觉这样有点不正规,而且出错的几率也比较大...
发表于 2011-12-25 21:41:50 | 显示全部楼层
回复  afan


    上次你也说我 DIY 系统来着, 应该说的是我..
    我现在不想折腾系统了,那玩意需要 ...
bdancerlc 发表于 2011-12-25 21:39



    还是你强,你都会做插件~
我只会把别的软件拿来做我的插件。。。
 楼主| 发表于 2011-12-25 21:48:46 | 显示全部楼层
回复 12# afan


    a版就别谦虚了,我是想做,还没摸清楚方法呢!...
    哎...只能慢慢摸索了..
   
发表于 2011-12-25 21:54:35 | 显示全部楼层
?我这里一切正常!既无错误提示,又无重影!
发表于 2011-12-26 08:38:55 | 显示全部楼层
回复 12# afan

都这么强,我只会把插件揪出来删掉
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-6-11 23:40 , Processed in 0.092933 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表