Visual Basic Tips


フォーム・×ボタンの無効化(API)


ControlBoxプロパティをFalseにしてしまうと×ボタンまで消えてしまいますが、最小化ボタン・最大化ボタンは有効なまま×ボタンのみを無効化します。

※システムメニューの「閉じる」まで無効化したい場合は「システムメニューの削除(API)」を参照して下さい。

Private Sub Form_Load()
  
Dim hMenu As Long
  
Dim lret As Long

  hMenu = GetSystemMenu(Me.hwnd, 0)
  lret = EnableMenuItem(hMenu, SC_CLOSE, MF_DISABLED)
End Sub

'-------------------------------------------------------
'
'-------------------------------------------------------
Public Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Public Declare Function EnableMenuItem Lib "user32" (ByVal hMenu As Long, ByVal wIDEnableItem As Long, ByVal wEnable As Long) As Long

Public Const MF_DISABLED = &H2&
Public Const MF_ENABLED = &H0&
Public Const SC_CLOSE = &HF060&


DownLoad vbtips067.lzh 2KB (VB6.0)