• ベストアンサー

MFCのアクセラレータ

現在、MFCでドローソフトを作成しております。 Viewに複数の要素を配置している状態で Ctrlキー + Aボタン 同時押しで 全ての要素を選択状態にしたいと考えております。 リソースのアクセラレータにCtrlキー + Aボタンを登録した後、 どこに該当するプログラムを書くのか分かりません。 詳しい方がいたら教えて下さい。 どうぞ宜しくお願い致します。

  • ken2r
  • お礼率88% (82/93)

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

  • ベストアンサー
回答No.2

アクセラレータを登録するときに、一緒にIDも登録しているはずです。 登録したキーが押されると、そのIDがコマンドとしてメッセージキューに入るので、そのIDに対するハンドラーを作成すれば、そのハンドラー内の処理が実行されるようになります。

ken2r
質問者

お礼

教えていただいた方法でできたのですが、リソースを壊してしまったのかバグなのか できない場合もあります。 取りあえず、リソースを作り直そうと思います。 ご回答有難うございました。

その他の回答 (1)

  • neko3839
  • ベストアンサー率37% (100/268)
回答No.1

OnKeyDown() の中でキーコードを判定(Ctrlキー + Aボタン か否か)をするのは、いかがでしょう?

ken2r
質問者

お礼

ご回答有難うございました。

関連するQ&A

  • MFC ダイアログ上のID取得について

    VC++6.0 MFC ダイアログベースで開発しています。 リソースエディタで配置したダイアログ上にある全てのコントロール(ボタン、テキスト等)IDを取得する方法はありませんか? よろしくお願いします。

  • CTRL+ALTをAなどに割り当てたい

    CTRL+ALT(同時押し)を何らかの[A]や[B]のキーに割り当てたいのですが 何らかのソフトを使えば可能ですか?

  • 【MFC】Version情報の取得

    MFCでアプリケーションを作成しています。 リソースビュー⇒「Version」⇒「VS_VERSION_INFO」の、 キー「FILEVERSION」の値を取得するにはどのように実装すれば良いのでしょうか? ご存知の方おられましたら、ご教授お願い致します。 開発環境はVC++2005です。

  • メーラーソフトの【サンダーバード】について質問です。

    メーラーソフトの【サンダーバード】について質問です。 キーボードのAキー?周辺を押したとき、受信フォルダ内のメールが 消えてしまいます。 消えてしまったメールはどこに移されてしまうのでしょうか…? おそらくショートカットキーなのだとは思うのですが、デフォルトから 特に設定も変えておらず、なおかつCtrlキーなどとの同時押しでも ありません。 キーボードのAキー?の動作内容をご存知の方いらっしゃいましたら、 ぜひご教授をお願いします。 また、Ctrl同時押し以外のショートカット(誤動作で押してしまうので) がありましたら、併せてご教授頂けたら幸いです。

  • 丸みのあるボタンの表示

    VisualStudio2008を使用しています。 リソースビューにて、ダイアログを作成、 ボタンを配置すると、XPやVistaのような 丸みのあるボタンが配置され、 Ctrl+Tで、ダイアログのテストをしてみても、 丸みのあるボタンで表示されるのですが、 ビルドして表示させると、直角のボタンで表示されてしまいます。 ボタンのプロパティを見る限り、丸みをON/OFFするような 設定は見つかりませんが、XPやVistaのようなボタンで 表示させるには、各ボタンごとに、SetWindowRgnを 行なう方法でしか、実現できないものなのでしょうか?

  • 強制終了ダイアログ上部分が表示されません

     Windows2000です。  Ctrl+Alt+Deleteキー同時押しで出てくるメニューのうち、タスクマネージャを選ぶと上部の青いバー部分が表示されません。(閉じるボタンや最大化ボタンのあるところ)  そのため、このウィンドウを消すときにはAlt+F4キーを押さないとなりません。  ここ何ヶ月もそうです。  直しかたと、ウィルス等の可能性を教えていただけないでしょうか?

  • ショートカットキーをカスタマイズ可能にするには(VC2005)

    自作したアプリケーションのショートカットキーを、 ユーザーが後からカスタマイズできるようにするにはどうしたらよいでしょうか。 具体的には、VisualC++2005のリソースビューの[Accelerator]で編集するような内容を、ユーザーが後から行えるようにしたい、ということです。 単純に考えれば、OnKeyDownメソッドでキーが押されたときの場合わけを自分で実装するのかと思いますが、 Acceleratorがリソースファイルに記述されていることを考えると、もっとスマートな方法があるのではないかと思って。どなたかアドバイスなどいただけると幸いです。

  • 【MFC】キャンセルボタン処理が実装できない

    VC++2005(MFC)にて下記サイトを参考にMDIアプリケーションを作成しています。 http://www.alpha-net.ne.jp/users2/uk413/vc/VCT_MDI1.html 手順として、プロジェクトを新規作成し、MFC AppWizard(exe)で 新規プロジェクト名をMDITest1に設定し、アプリケーションの種類はMDI、 ビュークラスCMDITest1Viewの基本クラスはCFormViewとします。 リソースビューより、自動生成されたフォームの上に、 Buttonを配置し、イベントハンドラOnBnClickedButton1()内にて、 IDCANCEL()処理にて、ボタン押下時のウィンドウを閉じる処理を 実装したいのですが、コンパイルエラーが発生します。 基本クラスがCDialogクラスの場合は実装できるような気がするのですが。。 フォームビューだと、キャンセル処理は実装不可能なのでしょうか? また、不可能だとしたらウィンドウを閉じる処理はどのように実装すればよいのでしょうか? 解決策をご存知の方おられましたら、お手数ですがご教授宜しくお願い致します。

  • vk300s ゲームでctrlキーとrキー同時押し

    elecomのvk300sというキーボードを使っているのですが,ゲーム中にctrlキーとrキーの同時押しが反応しません。ctrlキーと他のキーの同時押しは反応します。前に使ったキーボードも同じ事が起きていました(メカニカル)。色々調べましたがよく分かりません。どなたか解決出来た方はいらっしゃいませんか?良ければ教えていただきたいです。よろしくお願いします。 ※OKWAVEより補足:「エレコム株式会社の製品」についての質問です。

  • 自作ダイアログボックス中のエディットボックスでCtrl+Aを使えるようにしたい。

    リソースエディタで作成したダイアログボックスの中のエディットボックスで、 Ctrl+Aで全範囲選択をしたいのですが実現方法が分かりません。 同様に、リストビューの選択行を「Delキー」で削除させる方法も教えていただきたいです。 (削除ボタンを作成し、その押下によって削除できるようにはなっています。) 環境は、VC++ 6.0、Win32 APIです。 よろしくお願い致します。

専門家に質問してみよう