如题

解决方案 »

  1.   

    最小化不改变大小
    运行时不能设置BorderStyle、MinButton、MaxButton
    Option ExplicitPrivate Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As LongPrivate Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As LongPrivate Const WS_MAXIMIZEBOX = &H10000Private Const WS_MINIMIZEBOX = &H20000Private Const WS_THICKFRAME = &H40000Private Const GWL_STYLE = (-16)Private Sub Form_Load()    Dim TempLng As Long        TempLng = GetWindowLong(Me.hwnd, GWL_STYLE)    'TempLng = TempLng And Not WS_MINIMIZEBOX '隐藏最小化    TempLng = TempLng And Not WS_MAXIMIZEBOX '禁用最大化    TempLng = TempLng And Not WS_THICKFRAME '禁用可改变大小的边框    SetWindowLong Me.hwnd, GWL_STYLE, TempLngEnd Sub试试这个,好像也可以
    Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As LongPrivate Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As LongPrivate Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As LongPrivate Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As LongConst MF_BYPOSITION = &H400&Const MF_REMOVE = &H1000&Private Sub Form_Load()    Dim hSysMenu As Long, nCnt As Long    ' Get handle to our form's system menu    ' (Restore, Maximize, Move, close etc.)    hSysMenu = GetSystemMenu(Me.hwnd, False)    If hSysMenu Then        ' Get System menu's menu count        nCnt = GetMenuItemCount(hSysMenu)        If nCnt Then            ' Menu count is based on 0 (0, 1, 2, 3...)            RemoveMenu hSysMenu, nCnt - 2, MF_BYPOSITION Or MF_REMOVE ' Remove the seperator            RemoveMenu hSysMenu, nCnt - 5, MF_BYPOSITION Or MF_REMOVE            DrawMenuBar Me.hwnd        End If    End IfEnd Sub