Odstranění nabídky Zavřít v systémovém menu

Postup:
Založte nový projekt s modulem a formulářem. Do formuláře přidejte tlačítko pro uzavření okna - Unload Me.

V modulu definujte:
Public Const MF_BYPOSITION = &H400
Public Const MF_REMOVE = &H1000

Public Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) 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

*Tato deklarace musí být celá na samostatném řádku

Ve formuláři, na událost Load:
Private Sub Form_Load()

    Dim hMenu As Long
    Dim menuItemCount As Long

    'Zjištění ukazatele na systémové menu
   
hMenu = GetSystemMenu(Me.hwnd, 0)
    If hMenu Then

       'Zjištění počtu položek v systémovém menu
        menuItemCount = GetMenuItemCount(hMenu)
       
'Odstranění položky Zavřít.
        Call RemoveMenu(hMenu, menuItemCount - 1, MF_REMOVE Or MF_BYPOSITION)
       
'Odstranění čáry oddělující položku Zavřít
        Call RemoveMenu(hMenu, menuItemCount - 2, MF_REMOVE Or MF_BYPOSITION)
       
'Překreslení menu a obnovení titulku         
        DrawMenuBar(Me.hwnd)
    End If

End Sub

Zpět

Autor: The Bozena