СообЧа > База Знаний > Программирование > Visual Basic > Формы и элементы управления

Вопрос

Как убрать кнопочку [X] из правого верхнего угла формы, а кнопки «Свернуть» и «Развернуть» оставить? Или как заблокировать эту кнопку, чтобы юзер не мог на нее нажать.

Ответ

Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, _
ByVal bRevert As Long) As Long
Private Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Long, ByVal, _
nPosition As Long, ByVal wFlags As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As _
Long
Const SC_CLOSE = &HF060
Const MF_BYCOMMAND = &H0

Public Sub DisableXbutton(ByVal frmHwnd As Long)
Dim hMenu As Long

hMenu = GetSystemMenu(frmHwnd, 0&)
If hMenu Then
Call DeleteMenu(hMenu, SC_CLOSE, MF_BYCOMMAND)
DrawMenuBar (frmHwnd)
End If
End Sub

Private Sub Form_Load()
DisableXbutton (Me.hwnd)
End Sub

Можно и так

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If UnloadMode = vbFormControlMenu Then
Cancel = True
End If
End Sub

vitarada



Copyright © 2000-2004 Сообщество Чайников
Контактная информация