メニューバーについて


ジム  2004-12-13 17:34:08  No: 87335  IP: [192.*.*.*]

メニューバーのメニューの Enabled プロパティをFalse にして禁止しているのに

その(淡色表示となった)メニューをクリックするとフォーカスが移動してしまうようです。淡色表示になるのですが、クリックするとへこむんです。かといってイベントは発生しません。他の場所(プログラム実行中)で、DoEvents でosに制御を戻すのですが、メニューバーをクリックすると(Flaseにしているのに)osから制御が戻ってきません。なにか解決方法はないのでしょうか?

編集 削除
de  2004-12-13 23:56:38  No: 87336  IP: [192.*.*.*]

その現象はウィンドウのタイトルバーをドラッグ中にも起こっていませんか?

編集 削除
ジム  2004-12-14 10:37:11  No: 87337  IP: [192.*.*.*]

ドラッグ中では、ありません。具体的にいうと
フォームにボタン1つ、プログレスバーを1つ貼り付けて、
メニューをmnuOption を追加します。

メインフォームでボタンを押すと以下のようなプログレスバーを単純に
表示するような処理をおこないます。そのままだと制御が戻ってこなくなるので
DoEvents をいれておきます。
ボタンを押すとプログレスバーに経過が表示され始めます。そこで  淡色表示の
メニュー  mnuOptionをクリックするとmnuOption がへこんだままプログレスバーの表示が止まってしまいます。(制御が戻らないようです)
mnuOption.Enabled = False  を True にしておけば、クリックした時
だけ制御が移るようです。淡色表示の時になぜ制御が戻ってこないのでしょうか?


Private Sub Command1_Click()
    Dim i As Integer, j As Integer
    
    mnuOption.Enabled = False
    For i = 0 To 1000
        For j = 0 To ProgressBar1.Max
            ProgressBar1.Value = j
            DoEvents
        Next j
    Next i
End Sub

編集 削除
適当主義者  2004-12-20 13:47:37  No: 87338  IP: [192.*.*.*]

ヒント
http://madia.world.coocan.jp/vb/vb_bbs2/200403_04030032.html

編集 削除
適当主義者  2004-12-20 13:56:45  No: 87339  IP: [192.*.*.*]


http://yokohama.cool.ne.jp/chokuto/urawaza/struct/MENUITEMINFO.html

編集 削除
おっさん  2004-12-20 15:30:44  No: 87340  IP: [192.*.*.*]

SetMenuInfo API関数で、モードレスメニューにしてしまう。
ってのはありかな?

編集 削除
ジム  2004-12-27 11:26:40  No: 87341  IP: [192.*.*.*]

ご回答ありがとうございます。SetMenuInfo API関数を少し調べてみます。

編集 削除