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 RemoveMenu Lib "USER32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags 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 Declare Function GetWindowLong Lib "USER32" Alias "GetWindowLongA "(ByVal hwnd As Long, ByVal nIndex As Long) As LongPrivate Const WS_MINIMIZEBOX = & H20000Private Const WS_MAXIMIZEBOX = & H10000Private Const GWL_STYLE = (-16) Private Const MF_BYPOSITION = & H400 & Private Const MF_REMOVE = & H1000 & Private Sub MDIForm_Load () Dim lWnd As Long DisableX lWnd = GetWindowLong (Me.hwnd, gwl_style) lwnd = lwnd and not (ws_minimizebox) lwnd = lwnd and not (ws_maximizebox) lwnd = setWindowlong (me.hwnd, gwl_style, lwnd) end S UB
Private sub disableX () '/ * does not display control menu DIM HMENU, NCOUNT, LO as long hmenu = getSystemMenu (me.hwnd, 0) ncount = getMenuItemCount (HMENU) LO = RemoveMenu (HMENU, NCOUNT - 3, MF_REMOVE or MF_BYPOSITION) LO = RemoveMenu (HMENU, NCOUNT - 4, MF_REMOVE or MF_BYPOSITION) End Sub