| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1521 人关注过本帖, 1 人收藏
标题:边学边编程 一个还没搞懂的问题 麻烦高手赐教
只看楼主 加入收藏
allanwu244
Rank: 2
等 级:论坛游民
帖 子:134
专家分:20
注 册:2007-7-24
结帖率:100%
收藏(1)
 问题点数:0 回复次数:11 
边学边编程 一个还没搞懂的问题 麻烦高手赐教
Height            窗体的高度
Width             窗体的宽度
Top               窗体Y轴离原点的距离
Left              窗体X轴离原点的距离


   问题是后两个又是代表什么呢?
ScaleHeight
ScaleWidth
ScreenHeight
ScreenWidth
搜索更多相关主题的帖子: 麻烦 
2008-12-08 22:25
pariszh
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2008-12-08 22:29
allanwu244
Rank: 2
等 级:论坛游民
帖 子:134
专家分:20
注 册:2007-7-24
收藏
得分:0 
谢谢您的回答
    再问:若我有一个窗体内有若干个控件,当我的窗体发生变化的时候(即最大化时)窗体内的控件也应该随着窗体变化而发生变化,应该是适用Resize事件而发生,那么我的问题是;我是否应该把这些作为一个过程或函数来调用。还是每个窗体都给它编个Resize事件程序。
  另外:烦请给个如何编程的大概程序。
                                                                                               再次衷心谢谢回复

边学边做,天天向上.
2008-12-08 23:08
pariszh
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2008-12-08 23:31
三断笛
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:31
帖 子:1621
专家分:1617
注 册:2007-5-24
收藏
得分:0 
网上有随窗体大小改变而改变控件位置的控件和源码
建议写成一个小模块,可以用Controls遍历窗体所有控件,然后根据窗体变化比例调整控件大小和位置
2008-12-09 01:36
howso
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2008-12-10
收藏
得分:0 
学习了
2008-12-10 11:47
allanwu244
Rank: 2
等 级:论坛游民
帖 子:134
专家分:20
注 册:2007-7-24
收藏
得分:0 
以下是引用三断笛在2008-12-9 01:36的发言:

网上有随窗体大小改变而改变控件位置的控件和源码
建议写成一个小模块,可以用Controls遍历窗体所有控件,然后根据窗体变化比例调整控件大小和位置




            能不能给个网址或大概写法 在此谢谢了
2008-12-10 12:29
不说也罢
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:39
帖 子:1481
专家分:4989
注 册:2007-10-7
收藏
得分:0 
回复 第7楼 allanwu244 的帖子
'*在窗体初始化或加载时调用本函数,如在LOAD事件中调用: ResizeInit Me
Public Sub ResizeInit(FormName As Form)
    Dim Widget As Control
   
    WidgetOldWidth = FormName.ScaleWidth
    WidgetOldHeight = FormName.ScaleHeight
    WidgetOldFont = FormName.Font.Size / WidgetOldHeight
    On Error Resume Next
    For Each Widget In FormName
        Widget.Tag = Widget.Left & " " & Widget.TOP & " " & Widget.Width & " " & Widget.Height & " "
    Next Widget
End Sub

Public Sub ResizeForm(FormName As Form) '窗体调整时调整控件大小,'如:ResizeForm Me
    Dim POS(4) As Double
    Dim I As Long, TempPos As Long, StartPos As Long
    Dim Widget As Control
    Dim ScaleX As Double, ScaleY As Double
   
    ScaleX = FormName.ScaleWidth / WidgetOldWidth
    '*保存窗体宽度缩放比例
    ScaleY = FormName.ScaleHeight / WidgetOldHeight
    '*保存窗体高度缩放比例
    On Error Resume Next
    Dim K As Integer
    For Each Widget In FormName
        K = K + 1
        StartPos = 1
        For I = 0 To 4
            '*读取控件的原始位置与大小
            TempPos = InStr(StartPos, Widget.Tag, " ", vbTextCompare)
            If TempPos > 0 Then
                POS(I) = Mid(Widget.Tag, StartPos, TempPos - StartPos)
                StartPos = TempPos + 1
            Else
                POS(I) = 0
            End If
            
            '*对控件重新定位与改变大小
            'Widget.Move Pos(0) * ScaleX, Pos(1) * ScaleY, Pos(2) * ScaleX, Pos(3) * ScaleY
        Next I
        '*对控件重新定位与改变大小,
        '*不用MOVE方法可以避免有些控件的HEIGHT为只读属性而产生错误
        Widget.Left = POS(0) * ScaleX
        Widget.TOP = POS(1) * ScaleY
        Widget.Width = POS(2) * ScaleX
        Widget.Height = POS(3) * ScaleY
        Widget.Font.Size = WidgetOldFont * FormName.ScaleHeight
    Next Widget
End Sub

===================================================
讨厌C#的行尾的小尾巴;和一对大括号{ }
===================================================
2008-12-10 12:34
逐日
Rank: 2
等 级:新手上路
威 望:5
帖 子:117
专家分:2
注 册:2008-9-22
收藏
得分:0 
学习学习
2008-12-10 13:15
不说也罢
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:39
帖 子:1481
专家分:4989
注 册:2007-10-7
收藏
得分:0 
修复8楼的贴子
'在通用模块中要声明三个变量:
    Private WidgetOldWidth As Long  '*保存窗体的原始宽度
    Private WidgetOldHeight As Long '*保存窗体的原始高度
    Private WidgetOldFont As Single '*保存窗体的原始字体比
然后在窗体的Form_Load事件中调用ResizeInit函数(如:ResizeInit Me)
在窗体的Form_Resize事件中调用ResizeForm函数(如:ResizeForm Me),就可以让窗体中的控件随窗体的变化而自动调整大小了

===================================================
讨厌C#的行尾的小尾巴;和一对大括号{ }
===================================================
2008-12-10 13:26
快速回复:边学边编程 一个还没搞懂的问题 麻烦高手赐教
数据加载中...
 
   



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

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