フォームのシステムメニューを削除する
VisualBasic6用
フォームのシステムメニューを削除する
Option Explicit 'フォームに、チェックボックス(Check1)をコントロール配列として5個(1〜5)と 'コマンドボタン(Command1)を1個配置してください。 Private Declare Function GetSystemMenu Lib "user32" _ (ByVal hWnd As Long, ByVal bRevert As Long) As Long Private Declare Function RemoveMenu Lib "user32" _ (ByVal hMenu As Long, ByVal nPosition As Long, _ ByVal wFlags As Long) As Long Private Const SC_SIZE = &HF000& 'サイズ変更 Private Const SC_MOVE = &HF010& '移動 Private Const SC_MINIMIZE = &HF020& '最小化 Private Const SC_MAXIMIZE = &HF030& '最大化 Private Const SC_CLOSE = &HF060& '閉じる Private Const MF_BYCOMMAND = &H0& Private Const MF_BYPOSITION = &H400& '----------------------------------------------------------------------------------------------------- Private Sub Command1_Click() Dim intCheckCnt As Integer Dim lngMenuID(1 To 5) As Long lngMenuID(1) = SC_MOVE lngMenuID(2) = SC_SIZE lngMenuID(3) = SC_MINIMIZE lngMenuID(4) = SC_MAXIMIZE lngMenuID(5) = SC_CLOSE For intCheckCnt = 1 To 5 If Check1(intCheckCnt).Value = 1 Then RemoveMenu GetSystemMenu(Me.hWnd, 0), lngMenuID(intCheckCnt), MF_BYCOMMAND Check1(intCheckCnt).Enabled = False End If Next If Check1(3).Value = 1 And Check1(4).Value = 1 Then RemoveMenu GetSystemMenu(Me.hWnd, 0), 0, MF_BYPOSITION End If End Sub