メニュー無効化
Posted: 2006年4月03日(月) 16:02
MainWndのMainMenuの中のあるIDだけを無効化させる
方法を教えてください。
できればソースを...(申し訳ありません) (@@;)
方法を教えてください。
できればソースを...(申し訳ありません) (@@;)
コード: 全て選択
Dim lpMenuInfo As MENUITEMINFO
Dim retAns As Long
'メニュー項目(IDM_Enable)を動的に無効化する。
lpMenuInfo.cbSize = Len( lpMenuInfo )
lpMenuInfo.fMask = MIIM_STATE
lpMenuInfo.fState = MFS_DISABLED
retAns = SetMenuItemInfo( hMenuMain, IDM_Enable, MF_BYCOMMAND, lpMenuInfo )
'SetMenuItemInfo()を使うと、メニューの内容(文字列)なども変更できる。
'要ヘルプ参照。
コード: 全て選択
'メニュー項目(IDM_Enable)を動的に無効化する。
EnableMenuItem( hMenuMain, IDM_Enable, MF_BYCOMMAND Or MF_GRAYED )
コード: 全て選択
EnableMenuItem(GetMenu(hMainWnd),IDM_HOGE,MF_BYCOMMAND or MF_GRAYED)
そうですね。7さん さんが書きました:> 暗示ですが(?)、例えば"MainMenu"というメニューを作ると"Dim hMenu_MainMenu As HMENU"とRADがCallback.wbpに定義してくれます。
コード: 全て選択
|--------------------------------------------|
| 親メニュー0 | 親メニュー1 | 親メニュー2 |
|--------------------------------------------|
| サブメニュー0,0 | サブメニュー1,0 | サブメニュー2,0 |
| サブメニュー0,1 | サブメニュー1,1 | サブメニュー2,1 |
| サブメニュー0,2 | サブメニュー1,2 | サブメニュー2,2 |
|--------------------------------------------|
コード: 全て選択
Dim hSubMenu As HMENU
hSubMenu=GetSubMenu(GetMenu(hMainWnd),0)
EnableMenuItem(hSubMenu,1,MF_BYPOSITION or MF_GRAYED)