VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 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関数を試した方がいいかも?


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -