テンプレート lt; クラスTクラスする TBaseCWindow、クラス =TWinTraitsCControlWinTraits = >
ATL_NO_VTABLE CWindowImpl クラス: パブリック CWindowImplBaseT < する TBase, TWinTraits >
パラメーター
T
CWindowImplの派生クラス。
する TBase
新しいクラスの基本クラス。CWindowは、デフォルトの基本クラスです。
TWinTrait
ウィンドウのスタイルを定義する特徴クラス。既定値はCControlWinTraitsです。
CWindowImplサブクラスを新しいウィンドウに、既存のウィンドウを作成することができます。CWindowImplのウィンドウ プロシージャでメッセージ マップを使用して、適切なハンドラーへのメッセージを直接に。
CWindowImpl::Create は、CWndClassInfoによって管理されているウィンドウ クラス情報に基づいて新規ウィンドウを作成します。CWindowImpl には、CWndClassInfo新しいウィンドウ クラスを登録することを意味は、マクロが含まれています。既存のウィンドウ クラスをスーパークラスに場合は、 CWindowImplからクラスを派生し、 DECLARE_WND_SUPERCLASSマクロが含まれます。この場合は、CWndClassInfoは、既存のクラスに基づいていますが、 CWindowImpl::WindowProcを使用して、ウィンドウ クラスを登録します。たとえば
クラスの CMyWindow: CComControllt;CMyWindow >、.//CComControl CWindowImpl の派生{パブリック。// 1.NULL パラメーターは ATL を生成ことを意味します。//、スーパークラスの名前// 2.「編集」パラメーター、スーパークラスです//、標準の Windows を編集ボックスに基づくDECLARE_WND_SUPERCLASS ([編集] NULL)...};
注特価;1 つのウィンドウ クラスの情報は、CWndClassInfoを管理しているため、 CWindowImplのインスタンスを通じて作成された各ウィンドウ、同じウィンドウ クラスのベースとなります。(&N)。
CWindowImplには、ウィンドウのサブクラス化もサポートしています。SubclassWindowメソッドは、既存のウィンドウをCWindowImplオブジェクトにアタッチ、ウィンドウ プロシージャをCWindowImpl::WindowProcに変更します。CWindowImplの各インスタンスには、別のウィンドウをサブクラス化することができます。
注特価;任意のCWindowImplオブジェクトを作成またはSubclassWindowのいずれかを呼び出します。両方が同じオブジェクトのメソッドを呼び出す必要がないです。(&N)。
CWindowImplのほかに、ATL の別のオブジェクトに含まれるウィンドウを作成するには、 CContainedWindowを提供します。
基本クラスのデストラクター (~CWindowImplRoot)、オブジェクトが破棄される前に、ウィンドウがなくなったことを確認。
CWindowImplBaseTからCWindowImplRootにする TBase 、 CMessageMapから派生、派生、 CWindowImplの派生します。
| 詳細については | 参照してください。 |
| コントロールの作成 | ATL チュートリアル |
| ATL でのウィンドウの使用 | ATL ウィンドウ クラス |
| ATL オブジェクト ウィザード | ATL プロジェクトの作成 |
| Windows | Windowsと以降のトピック、プラットフォーム SDKで |
| サブクラスの作成 | ウィンドウ プロシージャ サブクラス化でプラットフォーム SDK |
| スーパークラス化 | プラットフォーム SDKのウィンドウ プロシージャのスーパークラス化 |
#include lt;atlwin.h>
参照してください。