含まれている Windows を使用してください。

ATL は、 CContainedWindowに含まれている windows を実装します。コンテナー内のウィンドウのメッセージを独自のクラスで処理するのではなく、コンテナー オブジェクトにデリゲートするウィンドウを表します。

特価;含まれている windows を使用するためにCContainedWindowからクラスを派生する必要はありません。(&N)。

含まれている windows をいずれかのスーパークラスを既存のウィンドウ クラスまたは、既存のウィンドウをサブクラス化します。ウィンドウを作成、スーパークラス既存のウィンドウ クラス、まずCContainedWindowオブジェクトのコンス トラクターで既存のクラス名を指定します。CContainedWindow::Createを呼び出してください。既存のウィンドウをサブクラス化するには、ウィンドウ クラス名 ( NULLに渡すコンス トラクター) を指定する必要はありません。単に、 CContainedWindow::SubclassWindowハンドルがサブクラス化されているウィンドウにメソッド。

通常、コンテナー クラスのデータ メンバーとして含まれている windows を使用します。コンテナーは、ウィンドウにする必要はありません;ただし、 CMessageMapから派生する必要があります。

コンテナー内のウィンドウは、代替メッセージ マップを使用して、そのメッセージを処理できます。1 つ以上含まれているウィンドウがある場合は、いくつかの代替の各コンテナー内のウィンドウに対応するメッセージ マップを宣言する必要があります。

次の 2 つのコンテナー内のウィンドウのコンテナー クラスの例です。:

cMyContainer クラス: パブリック CMessageMap.{パブリック。特価;CContainedWindow m_wndEdit;CContainedWindow m_wndList;CMyContainer(): m_wndEdit ([編集] これは、1)、m_wndList (「リスト」、この 2).{}...BEGIN_MSG_MAP(CMyContainer)ALT_MSG_MAP(&1)・ ・ ハンドラーの編集ウィンドウはここに行くALT_MSG_MAP(2)//ハンドラー リスト ウィンドウはここに行くEND_MSG_MAP()}

詳細についてを参照してください、 SUBEDITサンプル。スーパークラス化とサブクラス化の詳細についてを参照してください ウィンドウ プロシージャ スーパークラス化 Win32 SDKでは、ウィンドウ プロシージャ サブクラス化

Index