⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 modinterface.bas

📁 评语编辑系统 评语编辑系统 评语编辑系统 评语编辑系统
💻 BAS
字号:
Attribute VB_Name = "ModInterface"
Option Explicit
'程序界面随显示器分辨率大小变化
Public FormOldWidth As Long '记录原窗体width
Public FormOldHeight As Long '记录原窗体Height

' Page Down is only set from On The Top * Key Sign is <TopF>
Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long 'TopF
'告诉一个窗口一个目标并图象处理它到屏幕最顶层
    Public Const SWP_NOMOVE = &H2 'TopF
    Public Const SWP_NOSIZE = &H1 'TopF
    Public Const HWND_TOPMOST = -1 'TopF
    Public Const HWND_NOTOPMOST = -2 'TopF
    Public Const FLAGS = SWP_NOMOVE Or SWP_NOSIZE 'TopF
Public Sub StayOnTop(TheForm As Form) 'TopF
    Dim SetWinOnTop As Long 'TopF
    SetWinOnTop = SetWindowPos(TheForm.hwnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS) 'TopF
End Sub     'TopF
'******page down is only set from lay screen center *Key sign is <FC>
Public Sub CenterForm(TheForm As Form) 'FC
    TheForm.Left = (Screen.Width - TheForm.Width) / 2
    TheForm.Top = (Screen.Height - TheForm.Height) / 2
End Sub 'FC
Public Sub NotOnTop(Frm As Form)
    Dim SetWinOnTop As Long
    SetWinOnTop = SetWindowPos(Frm.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, FLAGS)
    'Tells the form to nt be on top
End Sub
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

End Sub '程序界面随显示器分辨率大小变化
Public Sub ResizeForm(FormName As Form)  '当窗体大小发生变化时,各控件尺寸及位置作相应变化
    Dim Pos    '控件原先尺寸、位置
    Dim i 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
        Pos = Split(Obj.Tag, ",", , vbTextCompare)
        Obj.Move Pos(0) * ScaleX, Pos(1) * ScaleY, Pos(2) * ScaleX, Pos(3) * ScaleY
    Next
End Sub '程序界面随显示器分辨率大小变化


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -