如何禁止窗口改变大小,同时允许最小化、最大化.txt

来自「以电子书的形式收集了VB一些常见问题解决方法,可以很方便的查找自己需要解决的问题」· 文本 代码 · 共 36 行

TXT
36
字号
BorderStyle改 为 FixedSingle后 , 再 把 下 面 的 MinButton和 /或 MaxButton设 为 True就 可 以 了 。 
    主 持 人 注 : 下 面 的 两 种 方 法 也 可 以 满 足 要 求 , 虽 然 比 上 面 的 方 法 麻 烦 , 但 可 以 供 大 家 开 阔 思 路 。 
<END> 
    Private Const WS_THICKFRAME = &H40000 
    Private Const GWL_EXSTYLE = (-20) 
    Private Const GWL_STYLE = (-16) 
    Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _ 
     (ByVal hwnd As Long, _ 
     ByVal nIndex As Long, _ 
     ByVal dwNewLong As Long) As Long 
    Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _ 
     (ByVal hwnd As Long, _ 
     ByVal nIndex As Long) As Long 
     
    Private Sub Form_Load() 
     Dim xl As Long 
     
     Me.Show 
     Debug.Print Hex(Not WS_THICKFRAME) 
     xl = GetWindowLong(Form1.hwnd, GWL_STYLE) 
     xl = xl And (Not WS_THICKFRAME) 
     SetWindowLong Form1.hwnd, GWL_STYLE, xl 
    End Sub 
<END> 
     Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long 
     Private Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long 
     Private Const SC_SIZE = &HF000 
     Private Const MF_BYCOMMAND = &H0& 
     
    Private Sub Form_Load() 
     Dim hMenu As Long, Success As Long 
     
     hMenu = GetSystemMenu(Form1.hwnd, 0) 
     Success = DeleteMenu(hMenu, SC_SIZE, MF_BYCOMMAND) 
    End Sub 
<END>

⌨️ 快捷键说明

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