All controls in the form. Proportional zoom

xiaoxiao2021-03-06  86

Option ExplicitPrivate nFormHeight As IntegerPrivate nFormWidth As IntegerPrivate nNumOfControls As IntegerPrivate nTop () As IntegerPrivate nLeft () As IntegerPrivate nHeight () As IntegerPrivate nWidth () As IntegerPrivate nFontSize () As IntegerPrivate nRightMargin () As IntegerPrivate 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 NRight Margin (Nnumofcontrols) on Error ResMe next for i = 0 to nnumofcontrols if Typeof frm.controls (i) is line kiln 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 nRight Margin (i) = frm.controls (i) .Rightmargin endiff

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 Longon Error ResMe next nsaveredraw = frm.autoredraw

FRM.AUTOREDRAW = TRUE

IF bfirstttime kiln bfirsttime = false exit sub?

IFfrm.height

If frm.Width

For i = 0 to nnumofcontrols if Typeof frm.controls (i) is line kilm.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 = 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 = NSAVEDRAW

End Sub

转载请注明原文地址:https://www.9cbs.com/read-96194.html

New Post(0)