标题:如何保证窗体的放大缩小过程中高宽比例固定不变
只看楼主
jrs123
Rank: 2
等 级:论坛游民
威 望:1
帖 子:627
专家分:14
注 册:2006-9-5
结帖率:94.12%
 问题点数:0 回复次数:7 
如何保证窗体的放大缩小过程中高宽比例固定不变

这是一个窗体内的控件能随窗体大小变化而随之变化的代码,不足的是在窗体变化中无法保证控件(或窗体)的长宽比例不变,哪位高手能想个办法,不论窗体如何变大变小,保证其高宽的比例不会变.
Private Sub Form_Load()
form1.Height = Screen.Height / 3
form1.Width = Screen.Width / 5
End Sub

Private Sub Form_Resize()
Image1.Move 0, 0, ScaleWidth, ScaleHeight
End Sub

搜索更多相关主题的帖子: 窗体 中高 Sub Form 高宽 
2007-08-12 10:16
multiple1902
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:4881
专家分:671
注 册:2007-2-9
得分:0 

'option base 0
'[context:form]
dim x0,y0 as long

sub form_initialize
x0=me.width
y0=me.height
end sub

sub form_load
dim itemx as object
for each itemx in form1
itemx.tag=itemx.left & "," & itemx.top & "," & itemx.width & "," & itemx.height
next
end sub

sub form_resize
dim itemx as object
for each itemx in form1
itemx.move split(itemx.tag,",")(0) * me.width / x0,split(itemx.tag,",")(1) * me.width / x0,split(itemx.tag,",")(2) * me.width / x0,split(itemx.tag,",")(3) * me.width / x0
next
end sub

以上是把你给出的代码优化了一下

窗体高宽比例嘛……有点难办……form_resize中试试
me.height=me.width * y0 \ x0
但可能引起窗体闪动。

BEN说说你的想法。

[此贴子已经被作者于2007-8-12 10:49:39编辑过]

2007-08-12 10:24
jrs123
Rank: 2
等 级:论坛游民
威 望:1
帖 子:627
专家分:14
注 册:2006-9-5
得分:0 
回复:(jrs123)如何保证窗体的放大缩小过程中高宽比...
谢谢版主的代码,用了一下,好像比例可以不变了,但控件无法与窗体同步,而是向相反方向,详见下面附件:
8EruUAlU.rar (58.12 KB) 如何保证窗体的放大缩小过程中高宽比例固定不变


2007-08-12 10:38
multiple1902
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:4881
专家分:671
注 册:2007-2-9
得分:0 
十分抱歉脑子坏了……
itemx.move split(itemx.tag,",")(0) * x0 \ me.width,split(itemx.tag,",")(1) * x0 \ me.width,split(itemx.tag,",")(2) * x0 \ me.width,split(itemx.tag,",")(3) * x0 \ me.width
这行写错了……应该反过来
itemx.move split(itemx.tag,",")(0) * me.width / x0,split(itemx.tag,",")(1) * me.width / x0,split(itemx.tag,",")(2) * me.width / x0,split(itemx.tag,",")(3) * me.width / x0
我更新上去
2007-08-12 10:49
jrs123
Rank: 2
等 级:论坛游民
威 望:1
帖 子:627
专家分:14
注 册:2006-9-5
得分:0 

谢谢版主,改过来后可以实现比例不变了,就是窗体变化时会闪,不知如何克服啊?

2007-08-12 11:53
multiple1902
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:4881
专家分:671
注 册:2007-2-9
得分:0 
BEN!出来!

窗体用鼠标改变大小的时候开始和结束会引起什么事件吗?
2007-08-12 11:58
缘吇弹
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:地球
等 级:版主
威 望:43
帖 子:3038
专家分:27
注 册:2007-7-2
得分:0 

可以用个定时器


Repeat  Life=Study;Until (death);
2007-08-12 15:15
multiple1902
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:4881
专家分:671
注 册:2007-2-9
得分:0 
以下是引用缘吇弹在2007-8-12 15:15:12的发言:

可以用个定时器

话说这本来是个好主意
但Performance还没会闪的好


LZ可以考虑。

2007-08-12 15:16



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-162061-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.384162 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved