私は、クラスB
のクラスの階層を持ち、D
はB
から派生したクラスです。クラス階層に基づくメッセージマップのIDを抽象化
保護されたメンバーm_treeID
があります。これは、内部の各ツリーのIDです。
私は上の代わりに
ON_NOTIFY(NM_CLICK, TREE_A, OnNMClickTree)
ON_NOTIFY(NM_CLICK, TREE_B, OnNMClickTree)
を行うために、各D
のために行くの
ON_NOTIFY(NM_CLICK, m_treeID, OnNMClickTree)
のようなメッセージマップを埋めるために、基本クラスにしたい...と。
それは可能ですか?
あなたが達成したいことと、それが多型に関係する方法ははっきりしていません。子クラスの場合と同様に、基本クラスは通知を処理するかどうかを決定できます。子孫は、ハンドラの基本クラス実装をオーバーライドし、必要に応じて基本実装も呼び出すことができます。さらに、保護されたメンバm_treeIDは、ベースと子孫の両方で使用できます。多型はいずれの場合にも達成される。そして、ON_NOTIFY()マクロの2番目のパラメータは、コントロールを識別し、それがどのように動作するのか、なぜこれを変更するのですか? –
@ ConstantineGeorgiou:それぞれのツリーのIDを個別に持つn行の代わりに、 'ON_NOTIFY(NM_CLICK、m_treeID、OnNMClickTree)'を1行書きたいので、処理がすべてのツリーで同じであれば、ベースクラスにハンドラメソッドを持たせることができます。 – sergiol
@IInspectable? – sergiol