[已解决]关于调整GUI窗口内部大小的问题
本帖最后由 zjimmy 于 2010-4-3 21:40 编辑比如GUICreate了一个窗口,宽度高度分别是 w 和 h。
我希望可以修改这个窗口的大小。。。
如果用WinMove,参数里的宽度和高度依然使用 w 和 h ,这时候与一开始GUICreate是有区别的,原因在于:不同的系统主题风格,会导致WinGetPos的宽度和高度都不一样。。。
怎么解决这一问题?也就是如何不受系统主题的影响?
貌似WinMove调整的是包含GUI窗口周边在内的窗口大小,而不是仅仅调整GUI的内部大小。我希望只调整GUI的内部大小。
不知道我的问题说清楚了没有。。。
问题虽然没有直接解决,不过通过8楼A版的方法,也算是曲线解决了!感谢afan和大家的帮助! 在GUI里面建立组,所有的控件都放到组里,控件的宽高根据组的大小指定。
只改变组的宽、高值。
不知道行不行得通,我自己没有试过。 用相对坐标和相对宽度就行了 用相对坐标和相对宽度就行了
netegg 发表于 2010-4-2 21:59 http://www.autoitx.com/images/common/back.gif
不是很明白,可以详细说一下么?
我要调整的是“GUI内部”,不是“GUI控件”。 本帖最后由 zjimmy 于 2010-4-3 00:03 编辑
不同的系统主题,GUICreate出来的窗口标题栏高度不一样,边界的粗细也不一样,这就导致了实际WinGetPos得到的宽和高并不是与GUICreate的相一致。
这么说吧,我希望找到一种方法来“GUIMove”,而不是WinMove。 明白了,要获取系统度量单位? 也不是。
比如我们GUICreate了一个宽和高分别是w,h的窗口,然后用窗口信息工具查看,会发现这个窗口的宽和高不是w,h,因为有一层系统默认的皮肤在上面。 不知道有用不#Include <WinAPI.au3>
#Include <WindowsConstants.au3>
$h=_WinAPI_GetSystemMetrics(4)
MsgBox(0,"以像素计算的普通窗口标题的高度",$h)
$bk=_WinAPI_GetSystemMetrics($SM_CYEDGE)
MsgBox(0,"以像素计算的3d边框宽度",$bk) 这么说吧,GUICreate(width,height)和WinMove(width,height),窗口的宽和高并不一样。 不知道有用不
afan 发表于 2010-4-3 21:24 http://www.autoitx.com/images/common/back.gif
A版出动了!貌似这个可以解决,我试试去! 问题虽然没有直接解决,不过通过8楼A版的方法,也算是曲线解决了!感谢afan和大家的帮助!
页:
[1]