Disable the X (close button) on the title bar
This tip shows you how to disable the X on the title bar of you forms. It does this by removing the close item in the form's system menu. This works fine, until you want to re-enable the X.
Declarations
Paste this into the declaration section:
Declare Function GetSystemMenu Lib "user32" _ (ByVal hwnd As Long, ByVal bRevert As Long) As Long Declare Function GetMenuItemCount Lib "user32" _ (ByVal hMenu As Long) As Long Declare Function DrawMenuBar Lib "user32" _ (ByVal hwnd As Long) As Long Declare Function RemoveMenu Lib "user32" _ (ByVal hMenu As Long, ByVal nPosition As Long, _ ByVal wFlags As Long) As Long Public Const MF_BYPOSITION = &H400& Public Const MF_REMOVE = &H1000&
Form Code
Then paste this into the form:
Private Sub Form_Load() Dim hSysMenu As Long Dim nCnt As Long 'First, show the form Me.Show 'Get handle to our form's system menu '(Restore, Maximize, Move, close etc.) hSysMenu = GetSystemMenu(Me.hwnd, False) If hSysMenu Then 'Get System menu's menu count nCnt = GetMenuItemCount(hSysMenu) If nCnt Then 'Menu count is based on 0 (0, 1, 2, 3...) RemoveMenu hSysMenu, nCnt - 1, _ MF_BYPOSITION Or MF_REMOVE RemoveMenu hSysMenu, nCnt - 2, _ MF_BYPOSITION Or MF_REMOVE 'Remove the seperator DrawMenuBar Me.hwnd 'Force caption bar's refresh. Disabling X button Me.Caption = "Try to close me!" End If End If End Sub