minghui 发表于 2010-7-10 01:27:08

(已解决)GUI在原有窗口上扩大要怎么写

本帖最后由 minghui 于 2010-7-12 23:38 编辑

图1


图2


像上面图1中那样点高级后扩大成图2那样,AU3要怎么写

afan 发表于 2010-7-10 01:31:45

WinGetPos()
WinMove()

minghui 发表于 2010-7-10 01:52:58

本帖最后由 minghui 于 2010-7-10 01:54 编辑

可能我比较愚钝,还是没有搞明白, 使用 WinMove() 函数后原先调好的按钮等也会被一起拉宽,而不会像图中那样保持不变

afan 发表于 2010-7-10 01:54:15

那你再看一个函数 GUICtrlSetResizing()

minghui 发表于 2010-7-10 02:15:01

谢谢 afan 版主 基本上算是可以了, 细节方面还是不太懂,版主要是能给个例子就好了,不知道是不是有点贪了

afan 发表于 2010-7-10 02:37:27

$Form1 = GUICreate('伸缩窗口', 350, 150)
$Button1 = GUICtrlCreateButton('展开', 15, 78, 80, 22)
GUICtrlSetResizing(-1, 0x0322) ;$GUI_DOCKALL = 0x0322
$Label1 = GUICtrlCreateLabel('www.autoitx.com - afan', 150, 130, 345, 17)
GUICtrlSetResizing(-1, 0x0240) ;$GUI_DOCKSTATEBAR = 0x0240
GUISetState()

While 1
        $Msg = GUIGetMsg()
        Switch $Msg
                Case -3
                        Exit
                Case $Button1
                        $BtTxt = GUICtrlRead($Button1)
                        Move($BtTxt)
        EndSwitch
WEnd

Func Move($BtTxt)
        $guixy = WinGetPos($Form1)
        If $BtTxt = '收缩' Then
                GUICtrlSetData($Button1, '展开')
                $new_guiY = $guixy - 240
        Else
                GUICtrlSetData($Button1, '收缩')
                $new_guiY = $guixy + 240
        EndIf
        WinMove($Form1, '', $guixy, $guixy, $guixy, $new_guiY)
EndFunc   ;==>Move

minghui 发表于 2010-7-10 02:46:01

回复 6# afan
谢谢,谢谢! 总算是解决了.

zhangla 发表于 2010-8-13 20:18:47

好招,学习了。

4216730 发表于 2010-8-15 07:33:25

回复 6# afan

看着你写的代码很舒服

.個朲綉√ 发表于 2011-9-28 23:39:26

前来膜拜一下,果然神人啊,太强大了。。。

浪迹红客 发表于 2011-12-9 10:55:03

明白。。。。。
页: [1]
查看完整版本: (已解决)GUI在原有窗口上扩大要怎么写