這是一個類模塊:
1. 建立一個新的類模塊,加入下列代碼,并給類模塊起名(例:autosize)
2. 加入一個窗口并且加入:Private el as new autosize
3. 在 Form_Load 事件中加入 el.init me
4. 在 Form_Resize 事件中加入 el.formresize me
Option Explicit Private nFormHeight As Integer Private nFormWidth As Integer Private nNumOfControls As Integer Private nTop() As Integer Private nLeft() As Integer Private nHeight() As Integer Private nWidth() As Integer Private nFontSize() As Integer Private nRightMargin() As Integer Private bFirstTime As Boolean
Sub Init(frm As Form, Optional nWindState As Variant) Dim I As Integer Dim bWinMax As Boolean bWinMax = Not IsMissing(nWindState) nFormHeight = frm.Height nFormWidth = frm.Width nNumOfControls = frm.Controls.Count - 1 bFirstTime = True ReDim nTop(nNumOfControls) ReDim nLeft(nNumOfControls) ReDim nHeight(nNumOfControls) ReDim nWidth(nNumOfControls) ReDim nFontSize(nNumOfControls) ReDim nRightMargin(nNumOfControls) On Error Resume Next For I = 0 To nNumOfControls If TypeOf frm.Controls(I) Is Line Then nTop(I) = frm.Controls(I).Y1 nLeft(I) = frm.Controls(I).X1 nHeight(I) = frm.Controls(I).Y2 nWidth(I) = frm.Controls(I).X2 Else nTop(I) = frm.Controls(I).Top nLeft(I) = frm.Controls(I).Left nHeight(I) = frm.Controls(I).Height nWidth(I) = frm.Controls(I).Width nFontSize(I) = frm.FontSize nRightMargin(I) = frm.Controls(I).RightMargin End If Next If bWinMax Or frm.WindowState = 2 Then frm.Height = Screen.Height frm.Width = Screen.Width Else frm.Height = frm.Height * Screen.Height / 7290 frm.Width = frm.Width * Screen.Width / 9690 End If bFirstTime = True End Sub
Sub FormResize(frm As Form) Dim I As Integer Dim nCaptionSize As Integer Dim dRatioX As Double Dim dRatioY As Double Dim nSaveRedraw As Long On Error Resume Next nSaveRedraw = frm.AutoRedraw frm.AutoRedraw = True If bFirstTime Then bFirstTime = False Exit Sub End If If frm.Height < nFormHeight / 2 Then frm.Height = nFormHeight / 2 Endif If frm.Width < nFormWidth / 2 Then frm.Width = nFormWidth / 2 Endif nCaptionSize = 400 dRatioY = 1# * (nFormHeight - nCaptionSize) _ / (frm.Height - nCaptionSize) dRatioX = 1# * nFormWidth / frm.Width On Error Resume Next For I = 0 To nNumOfControls If TypeOf frm.Controls(I) Is Line Then frm.Controls(I).Y1 = Int(nTop(I) / dRatioY) frm.Controls(I).X1 = Int(nLeft(I) / dRatioX) frm.Controls(I).Y2 = Int(nHeight(I) / dRatioY) frm.Controls(I).X2 = Int(nWidth(I) / dRatioX) Else frm.Controls(I).Top = Int(nTop(I) / dRatioY) frm.Controls(I).Left = Int(nLeft(I) / dRatioX) frm.Controls(I).Height = Int(nHeight(I) / dRatioY) frm.Controls(I).Width = Int(nWidth(I) / dRatioX) frm.Controls(I).FontSize = Int(nFontSize(I) / _ dRatioX) + Int(nFontSize(I) / dRatioX) Mod 2 frm.Controls(I).RightMargin = Int(nRightMargin(I) / dRatioY) End If Next frm.AutoRedraw = nSaveRedraw End Sub
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/
領測軟件測試網最新更新
關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
技術支持和業務聯系:info@testage.com.cn 電話:010-51297073
版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
技術支持和業務聯系:info@testage.com.cn 電話:010-51297073
老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月