巴彦淖尔市交通违章查询:VB中控件大小随窗体大小变化而变化
来源:百度文库 编辑:偶看新闻 时间:2024/09/21 09:06:21
站长资讯中心
- 虚拟主机
- 域名注册
- 主页
- IDC资讯
- 网站运营
- 网站联盟
- 行业资讯
- 网络编程
- 服务器技术
- 软件技巧
- 网页制作
- 程序设计
- 网络知识
- 操作系统
- Asp.Net编程
- Asp编程
- Php编程
- Xml编程
- Access
- Mssql
- Mysql
- 其它
VB中控件大小随窗体大小变化而变化
时间:2008-04-09 04:44来源:互联网有时窗体变化后,如改变分辨率后控件大小却不能随之改变。手工代码调整实在麻烦,下面的模块实现自动查找窗体上控件并使其改变大小以适应窗体变化。 在Form的Resize事件中调用函数Resize_All就能实现控件自动调整大小,如: Private Sub Form_Resize() Dim H, i As Int 有时窗体变化后,如改变分辨率后控件大小却不能随之改变。手工代码调整实在麻烦,下面的模块实现自动查找窗体上控件并使其改变大小以适应窗体变化。在Form的Resize事件中调用函数Resize_All就能实现控件自动调整大小,如:
Private Sub Form_Resize()
Dim H, i As Integer
On Error Resume Next
Resize_ALL Me 'Me是窗体名,Form1,Form2等等都可以
End Sub
在模块中添加以下代码:
Public Type ctrObj
Name As String
Index As Long
Parrent As String
Top As Long
Left As Long
Height As Long
Width As Long
ScaleHeight As Long
ScaleWidth As Long
End Type
Private FormRecord() As ctrObj
Private ControlRecord() As ctrObj
Private bRunning As Boolean
Private MaxForm As Long
Private MaxControl As Long
Private Const WM_NCLBUTTONDOWN = &;HA1
Private Declare Function SendMessage Lib "USER32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Function ReleaseCapture Lib "USER32" () As Long
Function ActualPos(plLeft As Long) As Long
If plLeft < 0 Then
ActualPos = plLeft 75000
Else
ActualPos = plLeft
End If
End Function
Function FindForm(pfrmIn As Form) As Long
Dim i As Long
FindForm = -1
If MaxForm > 0 Then
For i = 0 To (MaxForm - 1)
If FormRecord(i).Name = pfrmIn.Name Then
FindForm = i
Exit Function
End If
Next i
End If
End Function
Function AddForm(pfrmIn As Form) As Long
Dim FormControl As Control
Dim i As Long
ReDim Preserve FormRecord(MaxForm 1)
FormRecord(MaxForm).Name = pfrmIn.Name
FormRecord(MaxForm).Top = pfrmIn.Top
FormRecord(MaxForm).Left = pfrmIn.Left
FormRecord(MaxForm).Height = pfrmIn.Height
FormRecord(MaxForm).Width = pfrmIn.Width
FormRecord(MaxForm).ScaleHeight = pfrmIn.ScaleHeight
FormRecord(MaxForm).ScaleWidth = pfrmIn.ScaleWidth
AddForm = MaxForm
MaxForm = MaxForm 1
For Each FormControl In pfrmIn
i = FindControl(FormControl, pfrmIn.Name)
If i < 0 Then
i = AddControl(FormControl, pfrmIn.Name)
End If
Next FormControl
End Function
Function FindControl(inControl As Control, inName As String) As Long
Dim i As Long
FindControl = -1
For i = 0 To (MaxControl - 1)
If ControlRecord(i).Parrent = inName Then
If ControlRecord(i).Name = inControl.Name Then
On Error Resume Next
If ControlRecord(i).Index = inControl.Index Then
FindControl = i
Exit Function
End If
On Error GoTo 0
End If
End If
Next i
End Function
Function AddControl(inControl As Control, inName As String) As Long
ReDim Preserve ControlRecord(MaxControl 1)
On Error Resume Next
ControlRecord(MaxControl).Name = inControl.Name
ControlRecord(MaxControl).Index = inControl.Index
ControlRecord(MaxControl).Parrent = inName
If TypeOf inControl Is Line Then
ControlRecord(MaxControl).Top = inControl.Y1
ControlRecord(MaxControl).Left = ActualPos(inControl.X1)
ControlRecord(MaxControl).Height = inControl.Y2
ControlRecord(MaxControl).Width = ActualPos(inControl.X2)
Else
ControlRecord(MaxControl).Top = inControl.Top
ControlRecord(MaxControl).Left = ActualPos(inControl.Left)
ControlRecord(MaxControl).Height = inControl.Height
ControlRecord(MaxControl).Width = inControl.Width
End If
inControl.IntegralHeight = False
On Error GoTo 0
AddControl = MaxControl
MaxControl = MaxControl 1
End Function
Function PerWidth(pfrmIn As Form) As Long
Dim i As Long
i = FindForm(pfrmIn)
If i < 0 Then
i = AddForm(pfrmIn)
End If
PerWidth = (pfrmIn.ScaleWidth * 100) \ FormRecord(i).ScaleWidth
End Function
Function PerHeight(pfrmIn As Form) As Double
Dim i As Long
i = FindForm(pfrmIn)
If i < 0 Then
i = AddForm(pfrmIn)
End If
PerHeight = (pfrmIn.ScaleHeight * 100) \ FormRecord(i).ScaleHeight
End Function
Public Sub ResizeControl(inControl As Control, pfrmIn As Form)
On Error Resume Next
Dim i As Long
Dim widthfactor As Single, heightfactor As Single ------分隔线----------------------------
- 上一篇:VB中操作目录的Winodws API小结
- 下一篇:VB6.0应用程序界面设计探讨
- 打印
- 相关文章
-
- ASP.NET遍历配置文件的连接字符串
- VB中控件大小随窗体大小变化而变化
- 生成pdf文件的好东西,itextsharp
- 走近VB.Net(五) VB.Net核心概念
- 实现asp.net只对个别控件实时访问数据库刷新数据
- 用VB编写一个弹出菜单类
- HttpRequest获取网站信息的程序示例
- 同时对多个文件进行大量写操作对性能优化
- ASP.NET 2.0 正式版中无刷新页面的开发(示例代码的补充)
- 编写简单的中文分词程序
- 推荐内容
-
- 热点内容
-
Powered by ABC188.COM © 2004-2009 All Rights Reserved.
站长资讯中心-互联网最全面,最专业的行业资讯网站!
蜀ICP备05000045号
如何在VB.NET中使控件随窗口大小变化而改变
C#中,怎么禁止窗体大小变化??
在VB.net中让控件大小和位置随着表单的大小成比例变化的方法
在vb中如何调整图像大小?图像像素随调整大小比例变化
如何在窗体中控制FLASH控件的大小随着窗口的大小而改变代码
vb中调整窗体大小的方法
文章中说道,单个簇的大小是根据磁盘分区变化而变化的?谢谢
高手,急,怎样让图片随表格大小而变化
网页中的表格怎样才能做到不随页面大小变化而变化啊?
象的大小变化
dreamweaver中怎样能使层的位置不随浏览器窗口大小变化时跟着发生变化
VB 控件容器 自适应大小
插入网页里的flash怎么让随浏览器的变化而缩放大小?
用dreamweaver时,如何规定网页的固定大小,不随屏幕变花而变化?
VB.NET窗体像图片一样变化
关于阴茎大小的变化
C#中,怎样能让窗体中的内容和GDI绘图的内容随窗体大小改变而缩放?
在VB中如何动态改变控件大小
怎样让MSFlexGrid控件的网格大小随着输入字数的多少变化?
什么样论坛,图片可以随鼠标滑轮滑动变化大小?
网页框架怎么随里面网页内容变化大小?
如何在VB的picturebox控件中 让图形适应控件自动调整大小
vb的MSHFlexGrid控件表格大小问题
VB.NET中如何锁定窗体的大小。让最大化按钮点不了。