15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Как запретить кнопку "Close" (X)

Иногда бывает необходимо не дать пользователю возможность закрывать окно простым нажатием на кнопку X. Следующий пример запрещает кнопку X, а так же делает недоступным пункт Close в системном меню, которое отображается при правом клике по заголовку окна:

Private Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Private Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As Long, ByVal bRevert As Long) As Long

Private Const MF_BYPOSITION = &H400&

Private Sub Form_Load()
    RemoveMenus
End Sub

Private Sub RemoveMenus()
    Dim hMenu As Long
    ' Получаем дескриптор системного меню формы.
    hMenu = GetSystemMenu(hWnd, False)
    DeleteMenu hMenu, 6, MF_BYPOSITION
End Sub