Width=screen.Width /screen.TwipsPerPixelX
Height=Screen.Height/Screen.TwipsPerPixelY
Height=Screen.Height/Screen.TwipsPerPixelY
解决方案 »
- winsocket怎么缓冲数据和收到缓冲数据
- 求在vb6.0+access数据库中要求不同的用户进入不同的界面代码如何写啊?
- 不是作病毒:后台自动安装,能否实现?
- 渐变色表示数值的问题,请大家出个主意(有点偏美工)
- 寻求copymemory的函数的原形和说明
- 如何使程序自动运行,释放串口?
- excel报表显示问题 ,请帮帮忙
- 如何用datagrid与listbox ,使datagrid中的column中的按钮点击后下拉框 出现list的内容?
- vb开发监控中心服务器端效率如何?
- 谁知道API的?
- 使用ADO创建 Northwind 的OLE DB 数据链接问题之在哪里?2,急救车来吧
- 当程序在运行时,怎样让其在任务栏不可见,程序刚启动时是可见的 !!!
1 采用上面的API获得当前的分辨率与你系统开发时用的分辨率得出一个比例,然后用这个比例来改变其控件大小
2 在form_resize事件中定义控件的大小
'* 名称:FormSet(formname,mode)
'* 功能:此函数用于初始化窗体的大小和位置
'* 用法:mode 满屏(0),左上(1),右上(2),左下(3),右下(4),居中(5)
'*********************************************************
Public Function FormSet(F As Form, Nu As Integer) As String Dim BarHeight As Integer '任务条的高度
BarHeight = 27 * 15
If IsNull(Nu) Then
Nu = 0
End If
F.ScaleMode = 3 '将窗体的分辨率设为象素级
Select Case Nu '根据参数设置窗体的大小和位置
Case 0 '默认的窗体效果,最大化
With F
.Top = 0
.Left = 0
.Width = Screen.Width
.Height = Screen.Height - BarHeight
End With
Case 1 '窗体的位置居左上
With F
.Top = 0
.Left = 0
End With
Case 2 '窗体的位置居右上
With F
.Top = 0
.Left = Screen.Width - .Width
End With
Case 3 '窗体的位置居左下
With F
.Top = Screen.Height - .Height - BarHeight
.Left = 0
End With
Case 4 '窗体的位置居右下
With F
.Top = Screen.Height - .Height - BarHeight
.Left = Screen.Width - .Width
End With
Case 5 '窗体的位置居中
With F
.Top = (Screen.Height - .Height) / 2
.Left = (Screen.Width - .Width) / 2
End With
End Select
' F.Icon = F_Main.Icon
End Function
Form_Load时设置,
'******************************************************
'原作者:邓勇
'收集整理:小聪明 [email protected]
'欢迎访问小聪明的主页VB版: http://coolzm.533.net
'******************************************************
'功能::窗体大小改变时窗体内的控件大小也随之动态改变
'使用方法:
'在相应的窗体程序中加入如下语句:
'---------------------------------------------------
'Private Sub Form_Load()
' Call ResizeInit(Me) '在程序装入时必须加入
'End Sub'Private Sub Form_Resize()
' Call ResizeForm(Me) '确保窗体改变时控件随之改变
'End Sub
'---------------------------------------------------
Option Explicit
Private FormOldWidth As Long '保存窗体的原始宽度
Private FormOldHeight As Long '保存窗体的原始高度
'在调用ResizeForm前先调用本函数
Public Sub ResizeInit(FormName As Form)
Dim Obj As Control
FormOldWidth = FormName.ScaleWidth
FormOldHeight = FormName.ScaleHeight
On Error Resume Next
For Each Obj In FormName
Obj.Tag = Obj.Left & " " & Obj.Top & " " & Obj.Width & " " & Obj.Height & " "
Next Obj
On Error GoTo 0
End Sub'按比例改变表单内各元件的大小,在调用ReSizeForm前先调用ReSizeInit函数
Public Sub ResizeForm(FormName As Form)
Dim Pos(4) As Double
Dim i As Long, TempPos As Long, StartPos As Long
Dim Obj As Control
Dim ScaleX As Double, ScaleY As Double
ScaleX = FormName.ScaleWidth / FormOldWidth '保存窗体宽度缩放比例
ScaleY = FormName.ScaleHeight / FormOldHeight '保存窗体高度缩放比例
On Error Resume Next
For Each Obj In FormName
StartPos = 1
For i = 0 To 4
'读取控件的原始位置与大小
TempPos = InStr(StartPos, Obj.Tag, " ", vbTextCompare)
If TempPos > 0 Then
Pos(i) = Mid(Obj.Tag, StartPos, TempPos - StartPos)
StartPos = TempPos + 1
Else
Pos(i) = 0
End If
'根据控件的原始位置及窗体改变大小的比例对控件重新定位与改变大小
Obj.Move Pos(0) * ScaleX, Pos(1) * ScaleY, Pos(2) * ScaleX, Pos(3) * ScaleY
Next i
Next Obj
On Error GoTo 0
End Sub