• ベストアンサー

メニューバークリックのメッセージハンドル

以前、MFCアプリケーションのコンテキストメニューの非活性方法について質問したのですが、同じような機能をメニューバーにも実装したいと思います。 あるメニューバーのメッセージをハンドルすると可能になると思うのですが、ハンドル方法がわからず困っています。 わかる方はいらっしゃいますでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.3

非活性ってメニュー項目をDisable(灰色の文字)にするんですよね? それってイベントいります?メニューが開かれる直前にならないとわからないことですか? あらかじめDisableにしておけばいいだけですよね。 CMenu * pSubMenu = GetMenu()->GetSubMenu(0); pSubMenu->EnableMenuItem(0, MF_DISABLED | MF_BYPOSITION); こんな感じのコードをDisableにすることが決まったタイミングで行えばいいかと。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • MASATO3
  • ベストアンサー率60% (27/45)
回答No.2

#1の参考URLですが、 途中でURLが切れてしまっているようです。 Googleあたりで「ON_UPDATE_COMMAND_UI」を検索してみて下さい。

全文を見る
すると、全ての回答が全文表示されます。
  • MASATO3
  • ベストアンサー率60% (27/45)
回答No.1

ON_UPDATE_COMMAND_UI マクロを使って実装できます。 詳細については参考URLを見て下さい。 手で直接書くマクロではなく、 Visual C++のメニューから色々選択すると勝手に追加されるマクロです。 Visual C++ 6.0ならばClass Wizardから追加できたと思います。 Visual C++.NET以降ならば、クラス ビューでクラスのプロパティを開くとそこから追加できます。 コンテキストメニューの非活性化も確か同じ方法でできたと思います。

参考URL:
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vccore/html/_core_how_to_update_user.
全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 他アプリの操作(メニューバー)

    市販されているアプリケーションを自分で作成しているソフトで操作したいのですが、どの様に制御したらいいのか判りません。プログラムはVB6.0で作成しております。 したい事は他のアプリケーションでメニューバーの中の項目の 印刷項目を選択したいのですが、メニューバーのハンドルを取得 出来ず困っております。 そもそもメニューバーのハンドルって取得できるのでしょうか?

  • メニューバーにキーボードから

    いつもお世話になっております。 質問なのですが、アプリケーションを開いているときに上のメニューバーからメニューを選びたい時、マウスポインターではなくキーボードショートカットを使ってメニューバーにアクセスできないでしょうか? あと、ちょっとマニアックな質問ですが、ターミナルを複数窓で使用しているときにキーボードで切り替える方法があれば教えていただければと思います。

    • ベストアンサー
    • Mac
  • HTMLで右クリックメニューを作りたい!

    HTMLで、右クリックをした時に出るコンテキストメニューを作りたいです。 ・コンテキストメニューに「COPY」の機能を付けたい。 ・文章などを選択し、右クリックで「COPY」を選択できる JAVASCRIPTとかDHTMLとかでいろいろサイトを探してみたのですが、 コンテキストメニューを作るだけなら見つかるのですが、 「COPY」という機能を付けたいのです。 ご存知の方、教えて下さい!! 仕事で使いたいのにわからなくて困っています。 よろしくお願いします。

  • メニューハンドルが無効ですと表示されます。

    いきなりPDFを再インストールしたところ、「メニューハンドルが無効です」というメッセージが現れました。PDF結合ソフトのみ起動できません。windowsシステムの復元を実行し起動させると今度はアプリケーションエラーが発生してしまいます。 どなたか対応方法ご存じの方はよろしくお願いいたします。

  • メニューのカスタマイズ

    EXCLEやWORDのメニューは、使用頻度の高い順に並び、かつ多いメニューは省略されて表示されます。 VC++で同様のメニューを実装する必要がでてきたのですが、このようなメニューを作成した経験のある方、その時の実装方法を教えていただけないでしょうか? よろしくお願い致します。 OS:Windows XP 開発環境:VS2005 MFC使用 MDIアプリケーション

  • メニューバーの表示

    Microsoft Accessについての質問です。 アクセスでアプリケーションを作りたいのですが、いろんな人が使用するため操作に制限をかけたいのですが、[メニューバー/ツールバー]を表示・非表示させる方法を教えてください。

  • メニューバーの隠し方。

    フリーブラウザfirefoxについての質問です。 画面最上部に存在するメニューバーなるものを隠したいのですが、どうしても方法がわかりません。IE8やoperaなどは、チェックマークを外すだけで簡単に隠せるように設計されているようですが、firefoxだけは違うような気がします。 どなたか、メニューバーの隠し方をご存じの方がいらっしゃいましたら、是非とも教えてください。 よろしくお願いします。

  • InterfaceBuilderでメニューバー作成

    XcodeのInterfaceBuilderで、メニューバーを新たに作る方法がわかりません。 Cocoaアプリケーションを新規で作成すると、MainMenu.xibの中にメニューバーが作成されていますが、 一旦このメニューバーを削除してしまった場合、どうやったら再作成できるのでしょうか? オブジェクトライブラリ内のMenuを配置しても、ウィンドウ上部に表示されるメニューバーの形になりません。

  • コンテクストメニューについて

    コンテクストメニューを使ってアプリケーションの切り替えをするソフトはありますが、controlキーを押さずに、画面上をクリックするだけでメニューを表示させる便利な機能を使うには、どうすればいいのでしょうか? なんらかのソフトが必要でしょうか? 知っているかたがいらっしゃったら、教えて下さい。 よろしくお願いします。

    • ベストアンサー
    • Mac
  • 右クリックメニューの非活性化

    MFCのCListViewを使用してリストビューのプログラムを作成しています。 で、現在その右クリックメニューを作成しようと思いい、ON_NOTIFY_REFLECT(NM_RCLICK, OnRclick)でハンドルし、その中で右クリックメニューの活性、非活性(グレーアウト)の制御を追加したいのですが、その制御がうまくいきません。(例えばある条件下の場合はあるメニューを非活性にする等) 詳しい方がいましたら教えていただけないでしょうか? ちなみに右クリックメニューは以下のようにして出力しています。 void CDebugTool::OnRclick(NMHDR* pNMHDR, LRESULT* pResult) { CMenu cme; cme.LoadMenu(IDR_RCLICKMENU); cme.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTBUTTON|TPM_RIGHTBUTTON, pt.x, pt.y, this); }