VB Code:
  1. Public Declare Function GetMenuItemCount _
  2. Lib "user32" (ByVal hMenu As Long) As _
  3. Long
  4.  
  5. Public Declare Function GetSystemMenu Lib _
  6. "user32" (ByVal hwnd As Long, ByVal _
  7. bRevert As Long) As Long
  8.  
  9. Public Declare Function RemoveMenu Lib _
  10. "user32" (ByVal hMenu As Long, ByVal _
  11. nPosition As Long, ByVal wFlags As Long) _
  12. As Long
  13.  
  14. Public Declare Function DrawMenuBar Lib _
  15. "user32" (ByVal hwnd As Long) As Long
  16.  
  17. Public Const MF_REMOVE = &H1000&
  18. Public Const MF_INSERT = &H0&
  19. Public Const MF_ENABLED = &H0&
  20. Public Const MF_BYPOSITION = &H400&
  21.  
  22. Public Sub DisableX(frm As Form, blnDisabled As Boolean)
  23. Dim hMenu As Long
  24. Dim nCount As Long
  25.  
  26. If blnDisabled = True Then
  27. hMenu = GetSystemMenu(frm.hwnd, 0)
  28. nCount = GetMenuItemCount(hMenu)
  29. Call RemoveMenu(hMenu, nCount - 1, MF_REMOVE Or MF_BYPOSITION)
  30. Call RemoveMenu(hMenu, nCount - 2, MF_REMOVE Or MF_BYPOSITION)
  31. DrawMenuBar frm.hwnd
  32. Else
  33. hMenu = GetSystemMenu(frm.hwnd, True)
  34. DrawMenuBar frm.hwnd
  35. End If
  36. End Sub