プロが教えるわが家の防犯対策術!

以前、MFCアプリケーションのコンテキストメニューの非活性方法について質問したのですが、同じような機能をメニューバーにも実装したいと思います。

あるメニューバーのメッセージをハンドルすると可能になると思うのですが、ハンドル方法がわからず困っています。

わかる方はいらっしゃいますでしょうか?

A 回答 (3件)

ON_UPDATE_COMMAND_UI マクロを使って実装できます。


詳細については参考URLを見て下さい。

手で直接書くマクロではなく、
Visual C++のメニューから色々選択すると勝手に追加されるマクロです。
Visual C++ 6.0ならばClass Wizardから追加できたと思います。
Visual C++.NET以降ならば、クラス ビューでクラスのプロパティを開くとそこから追加できます。

コンテキストメニューの非活性化も確か同じ方法でできたと思います。

参考URL:http://www.microsoft.com/japan/msdn/library/defa …
    • good
    • 0

#1の参考URLですが、


途中でURLが切れてしまっているようです。

Googleあたりで「ON_UPDATE_COMMAND_UI」を検索してみて下さい。
    • good
    • 0

非活性ってメニュー項目をDisable(灰色の文字)にするんですよね?



それってイベントいります?メニューが開かれる直前にならないとわからないことですか?

あらかじめDisableにしておけばいいだけですよね。

CMenu * pSubMenu = GetMenu()->GetSubMenu(0);
pSubMenu->EnableMenuItem(0, MF_DISABLED | MF_BYPOSITION);


こんな感じのコードをDisableにすることが決まったタイミングで行えばいいかと。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!