投稿日 | : 2005/01/26(Wed) 19:56 |
投稿者 | : ポン助 |
Eメール | : |
URL | : |
タイトル | : Re^3: SetMenuItemInfoについて |
> ご回答ありがとうございます。
> Enabled を Falseにして操作禁止にはなってもマウスを移動してクリックすると
> フォーカスが移動してしまい。他のプロセスが停止してしまうのです。ですから
> API関数でなんとかならないかなと思い思考錯誤しています。
このことかな?
hhttp://hpcgi1.nifty.com/MADIA/VBBBS/wwwlng.cgi?print+200412/04120059.txt
API関数でメニュー項目の状態を無効(MFS_DISABLED)に設定しても、
VBのEnabledプロパティをFalseにしたのと同じなので、解決にはならないと思いますよ。
どうしても、やってみたいなら、こんな感じ。
' メニューバーの左端アイテム(iIndex=0)を無効にする例。
Dim hMenu As Long
Dim mii As MENUITEMINFO
Dim iIndex As Long
Dim dwRetval As Long
hMenu = GetMenu(Me.hwnd)
iIndex = 0
With mii
.cbSize = Len(mii)
.fMask = MIIM_STATE Or MIIM_ID Or MIIM_SUBMENU Or _
MIIM_CHECKMARKS Or MIIM_TYPE Or MIIM_DATA
.fType = MFT_STRING
.dwTypeData = StrPtr(Space$(128))
.cch = 128
dwRetval = GetMenuItemInfo(hMenu, iIndex, 1, mii)
.fState = MFS_DISABLED
End With
dwRetval = SetMenuItemInfo(hMenu, iIndex, 1, mii)
dwRetval = DrawMenuBar(Me.hwnd)
それよりも、旧スレの回答にあるSetMenuInfo API関数を試した方がいいかも?