MFCでメッセージルーティングがどのように機能するかを理解しようとしています。 CWndを拡張するコントロールを想像してみてください。私の最初の質問は、コントロール内のすべてのメッセージが親コントロールに渡されているかどうかです。CStaticとCWndとメッセージルーティングの理解
私は、SS_NOTIFYスタイルを設定したときに特定のメッセージだけを渡すCStaticでは起こりません。それがCStatic特有のものなのか、すべてのコントロールのものなのかを理解しようとしています。具体的には、レイアウトを定義する唯一の目的でいくつかの子コントロールを持つコントロールを作成しようとしています。私は子コントロールのすべてのメッセージをこの中間コントロールの親が処理することを望みました。たとえば、このレイアウトコントロールに子ボタンがある場合、ボタンをクリックすると、メッセージは処理される親に送信されます。
しかし、私はすべてのメッセージを手動で扱うつもりはありません。したがって、私がCStaticの代わりにCWndから自分のコントロールを拡張すると、メッセージは渡されますか? FORWARD_NOTIFICATIONS()はMFCで使用できますか?そうでない場合は、必要に応じてメッセージを処理するために中間クラスを拡張することにします。あなたが知っている他の解決策?
私が欲しかったのは、親によって処理されるメッセージが祖父母によって処理されることでした。コントロールによって処理されるメッセージはそのまま保持されます。私のコンテナが、親に送信されるメッセージに対して透過的であることを望みました。 – webdreamer
OK私は今理解しています。これは「簡単に」行うことはできません。「簡単に」とは、マクロのみを使用することを意味します。親(コンテナ)のメッセージをキャッチし、手動でコンテナの親に再送信する必要があります。これの多くは、BN_CLICKEDメッセージを1つの関数にインターセプトするなど、自動化することができ、その1つの関数で親に再送信させることができます。そうすれば、ボタンを追加するたびにコンテナを更新する必要がなくなります。 – Roel
BN_CLICKEDメッセージを処理してそのメッセージを親に送信できますか?どうやって?あるいは、一般的なNotiftyを送って、親のメッセージを離れて伝えなければならないのですか? – webdreamer