• ベストアンサー

メニューを追加した時の実装を書くクラスは?

環境 WIN98 VC++6.0 MFC にて メニューにコマンドを追加しクラスウィザードにて、コマンドの実装をするときに、CxxxMainFrmクラスとCxxxViewクラスのどちらにも実装出来ます。 どうしてどちらにも実装できるのですか? また、それぞれの使い分けはどうなっているのですか?

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

  • ベストアンサー
  • onosuke
  • ベストアンサー率67% (310/456)
回答No.1

メニューのコマンドのクリックという動作は、プログラム上は、それと関連付けられたメッセージの発行に置き換えられます。 CxxxMainFrmクラスとCxxxViewクラスのどちらもにそのメッセージが渡されているんでしょう。 使いわけは好きなほう…とはいっても、その動作から実装すべきクラスが見えて来るはず。判らなければ、じっくりと考え下さい。適切な設計は、プログラマとしての大事な技能の一つです。

VitaminBB
質問者

お礼

回答ありがとうございます。 メニューの円をクリックするとクライアント領域に円が描画され、メニューの三角をクリックすると三角が描画されるような場合は、どちらに実装すれば良いでしょうか?

その他の回答 (2)

  • onosuke
  • ベストアンサー率67% (310/456)
回答No.3

CViewのクライアント領域に描画するだけなら、CViewで処理をするのが一番です。 CView内で処理が完結しますからね。

VitaminBB
質問者

お礼

回答ありがとうございます。 #勝手に大きな勘違いをして質問してしまったようです。 書くべきところに書く。ですね。

  • orion6619
  • ベストアンサー率41% (5/12)
回答No.2

基本的にDocument、View、FrameはCCmdTarget というクラスから派生しています。メニュー選択時のハンドらは基本的にCCmdTarget から派生したクラスで受け取ります。 アプリケーションの仕様にもよりますが、メニュー処理に適しているクラスで受け取るのがいいのではないでしょうか。

VitaminBB
質問者

お礼

回答ありがとうございます。 メニューの円をクリックするとクライアント領域に円が描画され、メニューの三角をクリックすると三角が描画されるような場合は、どちらに実装すれば良いでしょうか?

関連するQ&A