40.システムメニューの属性を変更
< 使用用途 >
システムメニューの属性を変更したい時に使う
今回のサンプルソースをダウンロードする方は下記の「ダウンロード」を!
=> ダウンロード ・・・ メニューの【閉じる】を無効化にするサンプルです。
< 説明 >
API関数のModifyMenu を使用します。
ModifyMenu=>システムメニューの属性を変更
<引数>
hMenu: メニューの ハンドル
nPosition: 定数参照(SC××)
wFlags: 定数参照(MF××)
wIDNewItem: 常に0
lpString: システムメニューのラベル
@戻り値@
正常終了0以外
*システムメニューのハンドルは 「39、システムメニューのハンドルを取得」を参照
*システムメニューのラベルは 「38、システムメニューのラベルを取得する」を参照
*属性を変更したらDrawMenuBarを使ってメニューを再描画する必要がある。
< SAMPLE >
'ここでは'システムメニューの「閉じる」を無効にする処理です
'標準モジュール
Public Declare Function ModifyMenu Lib "user32" Alias "ModifyMenuA"
(ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal
wIDNewItem As Long, ByVal lpString As String) As Long
'閉じる
Public Const SC_CLOSE = &HF060
'サイズを変更
Public Const SC_SIZE = &HF000
'最大化
Public Const SC_MAXIMIZE = &HF030
'元のサイズの戻す
Public Const SC_RESTORE = &HF120
'最小化
Public Const SC_MINIMIZE = &HF020
'移動
Public Const SC_MOVE = &HF010
'メニューをグレー表示にして選択できないようにする
Public Const MF_GRAYED = &H1&
'ここからはフォームの処理
Private Sub Command1_Click()
Dim lpString As String
Dim Ret As Long
Dim nHandle As Long
Ret = ModifyMenu(nHandle, SC_CLOSE, MF_GRAYED, 0, lpString)
End Sub