38.メニューのラベルを取得


< 使用用途 >
メニューの属性を変更したい時に使う

今回のサンプルソースをダウンロードする方は下記の「ダウンロード」を!
   => ダウンロード ・・・ メニューの【閉じる】を無効化にするサンプルです。


< 説明 >
API関数のGetMenuString を使用します。
GetMenuString=>メニューのラベルを取得
  <引数>
     Menu:      メニューの ハンドル
     wIDItem:    定数参照(SC××)
     lpString:    システムメニュ−のラベルが入る
     nMaxCount:  同、長さの
     wFlag:     定数参照(MF××)
  @戻り値@  
      正常終了0以外
*システムメニューのハンドルは 「39、メニューのハンドルを取得」を参照


< SAMPLE >
'ここではシステムメニューの【閉じる】のラベルを取得する処理です
'標準モジュール
Public Declare Function GetMenuString Lib "user32" Alias "GetMenuStringA" (ByVal hMenu As Long,ByVal wIDItem As Long, ByVal lpString As String, ByVal nMaxCount As Long, ByVal wFlag As Long) 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
   Dim nLeng As Long

   'バッファを確保する
   lpString = String(250, Chr(0))
   nLeng = Len(lpString)
   
   Ret = GetMenuString(nHandle, SC_CLOSE, lpString, nLeng, MF_GRAYED)

End Sub





API 技術関連のページへ戻る

ホーム PV ランキング