请教:如何调整窗体(GUI)大小。[已解决]
本帖最后由 水木子 于 2010-11-23 23:00 编辑各位前辈好!
下面是我做的窗体,我想通过“设置”调整窗体大小,并在调整后的窗体上创建新的控件。
窗体大小是调整了,但是窗体内部的控件也跟着变动了,这是怎么回事啊?
搜索了几遍未果,望各位指教啊!#include <WindowsConstants.au3>
$Form1 = GUICreate('表单', 250, 350, -1, -1)
$ListView1 = GUICtrlCreateListView('项目1 |项目2 ', 15, 15, 220, 240)
$Button1 = GUICtrlCreateButton('设置→', 30, 280, 75, 30, $WS_GROUP)
$Button2 = GUICtrlCreateButton('退出', 150, 280, 75, 30, $WS_GROUP)
GUISetState()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case - 3, $Button2
Exit
Case $Button1
If GUICtrlRead($Button1) = '设置→' Then
WinMove($Form1, '', Default, Default, 500, Default)
GUICtrlSetData($Button1, '设置←')
ElseIf GUICtrlRead($Button1) = '设置←' Then
WinMove($Form1, '', Default, Default, 256, Default)
GUICtrlSetData($Button1, '设置→')
EndIf
EndSwitch
WEnd 本帖最后由 afan 于 2009-9-2 19:59 编辑
如果控件很多可以在在前面加上即可Opt('GUIResizeMode', 802)即:#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Opt('GUIResizeMode', 802)
$Form1 = GUICreate("表单", 250, 350, -1, -1)
$ListView1 = GUICtrlCreateListView("项目1 |项目2 ", 15, 15, 220, 240)
$Button1 = GUICtrlCreateButton("设置→", 30, 280, 75, 30, $WS_GROUP)
$Button2 = GUICtrlCreateButton("退出", 150, 280, 75, 30, $WS_GROUP)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE,$Button2
Exit
Case $Button1
If GUICtrlRead($Button1) = "设置→" Then
WinMove($Form1,"", Default, Default, 500, Default )
GUICtrlSetData($Button1,"设置←")
ElseIf GUICtrlRead($Button1) = "设置←" Then
WinMove($Form1,"", Default, Default, 256, Default )
GUICtrlSetData($Button1,"设置→")
EndIf
Case $Button2
EndSwitch
WEnd 如果某些控件需要单独调整位置,比如相对上部位置不变、或者相对底部位置不变等等,可以在创建控件后使用
GUICtrlSetResizing ( 控件ID, 调整方式 ) 进行调整。比如 GUICtrlSetResizing (-1, $GUI_DOCKALL) 即表示在窗口被调整大小时控件位置将一直不变 本帖最后由 水木子 于 2009-9-2 20:26 编辑
如果某些控件需要单独调整位置,比如相对上部位置不变、或者相对底部位置不变等等,可以在创建控件后使用
GUICtrlSetResizing ( 控件ID, 调整方式 ) 进行调整。比如 GUICtrlSetResizing (-1, $GUI_DOCKALL) 即表示在 ...
afan 发表于 2009-9-2 19:57 http://www.autoitx.com/images/common/back.gif
谢谢!又是afan前辈,看嘛你还老说自己是新人,不厉害,说谎。。。
呵呵!回到正题,其实就是添加了 Opt('GUIResizeMode', 802)?
顺着你的指点,我又翻阅了帮助文档,明白了其中的意思。 呵呵,看到过就记下了~~~
如果都是保持位置不变前面加上那句就行了。
不过如果你的窗口是中部拉伸,那就要用到GUICtrlSetResizing调整那些相对位置了~ 嗯!谢谢前辈,我还想问,我怎么给新的窗体(调整以后的空白部分)添加控件呢?
PS:我是不是挺烦人啊:face (2): 先创建那些控件,在窗体展开前就已经存在了,只是窗体没展开看不见而已。展开后它们自然就出现了~ 本帖最后由 水木子 于 2009-9-2 20:51 编辑
哦!嗦德思嘞:face (37):
谢谢!非常感谢你耐心的解答!
很想给你加分,但是不知道为什么不行,是不是我等级太低了,没资格? 哈哈,心领啦 ^_^ 在你这栋楼我已经赚了60分啦,呵呵 呵呵!你倒挺会想哦!
今后还有很多问题需要请教你,还望你不吝赐教哦!
PS:现在都还有问题,哇!不好意思问了:face (27): 我也丢一句“带机哦补” ,呵呵 呵呵!先消化下前辈指点的,等学到那里了再问,一次问多了也记不住。 嗦德思~~ 有问题咱们再一起学习~~ 回复 14# afan
想问下版主,窗口调整大小的最小值能不能自己定义呀? 就是不让它无限调小,在设定的最小值和窗口最大化之间调整。非常感谢~~~
页:
[1]