VB中FORM的关闭按钮如何屏蔽,还有窗体(有遍框的)在运行时如何不让其他人手动改变窗体的大小!!谢了!!!!!!!!!!!!!!!!!!!

解决方案 »

  1.   

    窗口边框,及改变大小
    BorderStyle = 3屏蔽关闭按钮!
    Option Explicit
    Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
    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 GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
    Private Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long
    Private Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
    Const MF_BYPOSITION = &H400&
    Const MF_REMOVE = &H1000&
    Const SC_CLOSE = &HF060
    Const WS_MINIMIZEBOX = &H20000
    Const WS_MAXIMIZEBOX = &H10000
    Const GWL_STYLE = (-16)Private Sub Form_Load()
        Dim TempLng As Long    RemoveMenu GetSystemMenu(Me.hwnd, 0), SC_CLOSE, MF_REMOVE
        TempLng = GetWindowLong(Me.hwnd, GWL_STYLE)    TempLng = TempLng And Not WS_MINIMIZEBOX '最小化    TempLng = TempLng And Not WS_MAXIMIZEBOX '最大化    SetWindowLong Me.hwnd, GWL_STYLE, TempLng
    End Sub
      

  2.   

    窗体在运行时不让其他人手动改变窗体的大小只要设置BorderStyle即可;
    屏蔽关闭按钮要用API。
    楼上说得够清楚了!
      

  3.   

    同意楼上补一句不在窗体时改变大小, 将borderstyle 设为fixed sigle