codice:
'menu flags
Public Const MF_BYCOMMAND As Long = &H0
Public Const MF_BYPOSITION As Long = &H400
Public Const MF_REMOVE As Long = &H1000

Public Const MIIM_STATE As Long = &H1
Public Const MIIM_ID As Long = &H2
Public Const MIIM_SUBMENU As Long = &H4
Public Const MIIM_CHECKMARKS As Long = &H8
Public Const MIIM_TYPE As Long = &H10
Public Const MIIM_DATA As Long = &H20
Public Const MFT_STRING As Long = &H0
Public Const MFT_RADIOCHECK As Long = &H200
Public Const MFS_DISABLED As Long = &H3

Public Type MENUITEMINFO
    cbSize As Long
    fMask As Long
    fType As Long
    fState As Long
    wID As Long
    hSubMenu As Long
    hbmpChecked As Long
    hbmpUnchecked As Long
    dwItemData As Long
    dwTypeData As String
    cch As Long
End Type

Public Declare Function GetMenuItemInfo Lib "user32" _
    Alias "GetMenuItemInfoA" _
   (ByVal hMenu As Long, ByVal uItem As Long, _
    ByVal fByPosition As Long, lpmii As MENUITEMINFO) As Long

Public Declare Function GetMenuItemCount Lib "user32" _
   (ByVal hMenu As Long) As Long
      
Public Declare Function GetSystemMenu Lib "user32" _
   (ByVal hwnd As Long, _
    ByVal bRevert As Long) As Long
       
Public Declare Function RemoveMenu Lib "user32" _
   (ByVal hMenu As Long, _
    ByVal nPosition As Long, _
    ByVal wFlags As Long) As Long
    
Public Declare Function DrawMenuBar Lib "user32" _
   (ByVal hwnd As Long) As Long

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

Public Sub RemoveCloseMenu(frm As Form)
Dim c As Long
Dim hMenu As Long
Dim mInfo As MENUITEMINFO
Dim Pos As Long
  
    'Trova l'hndle del menu
    hMenu = GetSystemMenu(frm.hwnd, 0)

    'scorre i menu all'indietro
    For c = GetMenuItemCount(hMenu) To 0 Step -1
       
        mInfo.cbSize = Len(mInfo)
        mInfo.fMask = MIIM_TYPE Or MIIM_ID
        mInfo.fType = MFT_STRING
        mInfo.dwTypeData = SPACE$(256)
        mInfo.cch = Len(mInfo.dwTypeData)
        'ottieni la struttura MENUITEMINFO per il menu corrente
        If GetMenuItemInfo(hMenu, c, True, mInfo) = 1 Then
         
            If (mInfo.wID = 61536) Then 'id del menu X
                'toglie la X
                Call RemoveMenu(hMenu, c, MF_REMOVE Or MF_BYPOSITION)
                'toglie il separatore prima della X
                Call RemoveMenu(hMenu, c - 1, MF_REMOVE Or MF_BYPOSITION)
            End If
        End If
    Next
   
    Call SetWindowPos(frm.hwnd, 0, 0, 0, 0, 0, SWP_FLAGS)
    Call DrawMenuBar(frm.hwnd)
   
End Sub
per usarla

codice:
   call RemoveCloseMenu(nomeform)