找回密码
 加入
搜索
查看: 2638|回复: 6

如何实现窗口伸缩功能?

[复制链接]
发表于 2008-7-15 09:51:41 | 显示全部楼层 |阅读模式




如图,点击“高级”就会变大,点击“简洁”就会缩小。

[ 本帖最后由 新手上路 于 2008-7-15 18:04 编辑 ]

本帖子中包含更多资源

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

×
发表于 2008-7-15 13:25:03 | 显示全部楼层
源码发上来SEE SEE
发表于 2008-7-15 13:34:08 | 显示全部楼层
原帖由 ceoguang 于 2008-7-15 13:25 发表
源码发上来SEE SEE


http://www.sogho.cn/blog/6/archives/2008/2008415155536.htm
应该很简单,form是可以调整的,当调小后,右边的控件可以设置为不可见,调大后,右边的控件再设置为可见。
发表于 2008-7-15 14:30:51 | 显示全部楼层
噢,我以为楼主的代码是加了皮肤的.
不过楼上的源码不没有楼主的那么完整.
 楼主| 发表于 2008-7-15 15:58:29 | 显示全部楼层
我肯定没有源码啦。3 楼给出的链接的代码里没有写出“高级”部分的代码。
发表于 2008-7-15 16:03:26 | 显示全部楼层
原帖由 新手上路 于 2008-7-15 15:58 发表
我肯定没有源码啦。3 楼给出的链接的代码里没有写出“高级”部分的代码。

注意到啦,确实没有高级这部分源码的。我加了点高级那部分的简单代码,修改其能再3.2.13.2.1内运行的。就当切磋学习。
#Region ;**** 参数创建于 AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=LOGO\biosclub.ico
#AutoIt3Wrapper_Outfile=e:\onekey.exe
#EndRegion ;**** 参数创建于 AutoIt3Wrapper_GUI ****
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <ListBoxConstants.au3>
#include <ComboConstants.au3>


#Region ### START Koda GUI section ### Form=e:\脚本\au3\gui\onekey.kxf
Global $sysinfo1, $sysinfo2
$sysinfo1 = True
$AForm1 = GUICreate("onekey 一键备份还原", 351, 200, -1, -1, $WS_SIZEBOX + $WS_SYSMENU)
$varhd = "C:"
$getlist = "C:"
$Group1 = GUICtrlCreateGroup("", 7, 0, 337, 132)
GUICtrlSetResizing($Group1,$GUI_DOCKALL)
$Group2 = GUICtrlCreateGroup("Ghost 操作:", 13, 13, 147, 47)
GUICtrlSetResizing($Group2,$GUI_DOCKALL)

$bf = GUICtrlCreateRadio("备分", 29, 30, 55, 17)
GUICtrlSetResizing($bf,$GUI_DOCKALL)
$hy = GUICtrlCreateRadio("还原", 94, 31, 49, 17)
GUICtrlSetResizing($hy,$GUI_DOCKALL)
;GUICtrlCreateGroup("", -99, -99, 1, 1)
$bfhy = GUICtrlCreateGroup("备份分区:", 165, 13, 172, 60)
GUICtrlSetResizing($bfhy,$GUI_DOCKALL)
$Label1 = GUICtrlCreateLabel("C:盘总体容量:" & Round(DriveSpaceTotal("c:")) & "M", 186, 34, 141, 17, $WS_DISABLED)
GUICtrlSetResizing(-1,$GUI_DOCKALL)
;$Label1 = GUICtrlCreateLabel("", 186, 34, 141, 17,$WS_DISABLED)
$Label2 = GUICtrlCreateLabel("", 186, 52, 141, 17, $WS_DISABLED)
GUICtrlSetResizing(-1,$GUI_DOCKALL)
$List1 = GUICtrlCreateCombo($varhd, 225, 11, 39, 20, $CBS_DROPDOWNLIST)
GUICtrlSetResizing(-1,$GUI_DOCKALL)
;GUICtrlCreateGroup("", -99, -99, 1, 1)
;$Group4 = GUICtrlCreateGroup("Ghost  镜像文件路径:", 14, 72, 324, 51)
Global $sTmpFile = 'G:\Ghost\C_WinXP.GHO'
Global $hFile = GUICtrlCreateInput("G:\Ghost\C_WinXP.GHO", 21, 90, 241, 21)
GUICtrlSetResizing(-1,$GUI_DOCKALL)
GUICtrlSetState(-1, $GUI_DROPACCEPTED)
Global $hFileSel1 = GUICtrlCreateButton("保存(S)", 268, 89, 65, 22)
GUICtrlSetResizing(-1,$GUI_DOCKALL)
$advbt = GUICtrlCreateButton("高级(&A)", 24, 139, 65, 23)
GUICtrlSetResizing(-1,$GUI_DOCKALL)
$Button3 = GUICtrlCreateButton("撤销(&S)", 106, 139, 65, 23)
GUICtrlSetResizing(-1,$GUI_DOCKALL)
$Button4 = GUICtrlCreateButton("确定(&O)", 187, 139, 65, 23)
GUICtrlSetResizing(-1,$GUI_DOCKALL)
$cancelbutton = GUICtrlCreateButton("退出(&X)", 269, 139, 65, 23)
GUICtrlSetResizing(-1,$GUI_DOCKALL)
GUICtrlSetState($hy, $GUI_CHECKED)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
$var = DriveGetDrive("FIXED")
If Not @error Then
        For $i = 1 To $var[0]
                $varhd = GUICtrlSetData($List1, StringUpper($var[$i]))
                $lasthd = StringUpper($var[0])
                $lastdrv = StringUpper($var[$lasthd])
        Next
EndIf
While 1
        $Msg = GUIGetMsg()
        Select
                Case $Msg = $cancelbutton Or $Msg = $GUI_EVENT_CLOSE
                        ExitLoop
                Case $Msg = $hy
                        $sysinfo1 = True
                        $sysinfo2 = False
                        $bfhyt = "还原分区:"
                        ;GUICtrlSetData($bfhy, $bfhyt)
                        GUICtrlSetData($hFileSel1, "打开(&O)")
                        ControlDisable("", "", $Button4)
                        ControlHide("", "", $Label2)
                        GUICtrlSetData($Label1, $getlist & "盘总体容量:" & Round(DriveSpaceTotal($getlist)) & "M")
                Case $Msg = $bf
                        $sysinfo2 = True
                        $sysinfo1 = False
                        $bfhyt = "备份分区:"
                        ;GUICtrlSetData($bfhy, $bfhyt)
                        GUICtrlSetData($hFileSel1, "保存(&S)")
                        ControlEnable("", "", $Button4)
                        ControlEnable("", "", $Button3)
                        ControlShow("", "", $Label2)
                        GUICtrlSetData($Label1, $getlist & "盘已用空间:" & (Round(DriveSpaceTotal($getlist)) - Round(DriveSpaceFree($getlist))) & "M")
                        GUICtrlSetData($Label2, $lastdrv & "盘可用空间:" & Round(DriveSpaceFree($lastdrv)) & "M")
                Case $Msg = $hFileSel1
                        If $bfhyt = "还原分区:" Then
                                Global $sTmpFile = FileOpenDialog("Select ", "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}", "(*.gho;)")
                                If @error Then ContinueLoop
                                GUICtrlSetData($hFile, $sTmpFile)
                        Else
                                Global $sTmpFile = FileSaveDialog("Select ", "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}", "(*.gho;)")
                                If @error Then ContinueLoop
                                GUICtrlSetData($hFile, $sTmpFile)
                        EndIf
                Case $Msg = $List1
                        ;If BitAnd(GUICtrlRead($hy), $GUI_DEFBUTTON) Then
                        If $sysinfo1 = True Then
                                $getlist = GUICtrlRead($List1)
                                GUICtrlSetData($Label1, $getlist & "盘总体容量:" & (Round(DriveSpaceTotal($getlist))) & "M")
                        Else
                                GUICtrlSetData($Label1, $getlist & "盘已用空间:" & (Round(DriveSpaceTotal($getlist)) - Round(DriveSpaceFree($getlist))) & "M")
                        EndIf
                        If $sysinfo2 = True Then
                                $getlist = GUICtrlRead($List1)
                                GUICtrlSetData($Label1, $getlist & "盘已用空间:" & (Round(DriveSpaceTotal($getlist)) - Round(DriveSpaceFree($getlist))) & "M")
                        Else
                                GUICtrlSetData($Label1, $getlist & "盘总体容量:" & (Round(DriveSpaceTotal($getlist))) & "M")
                        EndIf
                Case $Msg = $advbt
                        $GorJ=GUICtrlRead($advbt)
                        gochange($GorJ)
                        ;GUICtrlSetData($advbt, "简洁(&S)")

        EndSelect
WEnd

Func gochange($GorJ)
        $XY=WinGetPos($AForm1)
        if $GorJ="简洁(&S)" Then
                GUICtrlSetData($advbt, "高级(&S)")
                $newY=$XY[3]-100
        Else
                GUICtrlSetData($advbt, "简洁(&S)")
                $newY=$XY[3]+100
        EndIf
        WinMove($AForm1,"",$XY[0],$XY[1],$XY[2],$newY)
EndFunc
 楼主| 发表于 2008-7-15 18:04:16 | 显示全部楼层
楼上高手!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-4-20 18:42 , Processed in 0.073779 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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