CWindowImpl クラス
このクラスには、ウィンドウを作成またはサブクラス化するためのメソッドが用意されています。
重要 |
---|
このクラスおよびメンバーは、Windows のランタイムで実行するアプリケーションで使用することはできません。 |
template <
class T,
class TBase= CWindow,
class TWinTraits= CControlWinTraits
>
class ATL_NO_VTABLE CWindowImpl :
public CWindowImplBaseT< TBase, TWinTraits>
パラメーター
T
CWindowImplから派生したクラス。TBase
新しいクラスの基本クラス。既定の基本クラスは CWindowです。TWinTraits
クラスの特性、ウィンドウのスタイルを定義する。既定値は、CControlWinTraits です。
メンバー
パブリック メソッド
名前 |
説明 |
---|---|
ウィンドウを作成します。 |
CWindowImplBaseT のメソッド
既定のメッセージの処理を行います。 |
|
現在のメッセージを返します。 |
|
現在のウィンドウ プロシージャを返します。 |
|
最後のメッセージ (通常は WM_NCDESTROY) を受信すると呼び出されます。 |
|
サブクラス ウィンドウ。 |
|
前にサブクラス化されたウィンドウを復元します。 |
静的メソッド
ウィンドウ クラスの情報を管理する CWndClassInfoの静的インスタンスを返します。 |
|
ウィンドウに送信されるメッセージを処理します。 |
データ メンバー
ウィンドウ クラスの元のウィンドウ プロシージャへのポインター。 |
解説
CWindowImpl は、既存のウィンドウ新しいウィンドウまたはサブクラスを作成することができます。CWindowImpl のウィンドウ プロシージャは適切なハンドラーにメッセージを指示するためにメッセージ マップを使用します。
CWindowImpl::Create は CWndClassInfoによって管理されるウィンドウ クラスの情報に基づいて新しいウィンドウを作成します。CWindowImpl は CWndClassInfo は新しいウィンドウ クラスを登録することを意味する DECLARE_WND_CLASS のマクロが含まれています。スーパークラス化に既存のウィンドウ クラスが必要な場合は、クラスを CWindowImpl から派生し、DECLARE_WND_SUPERCLASS のマクロを含めます。この場合、CWndClassInfo は、既存のクラスを使用 CWindowImpl::WindowProcに基づくウィンドウ クラスを登録します。例:
class ATL_NO_VTABLE CMyWindow :
OtherInheritedClasses
public CComControl<CMyWindow>
// CComControl derives from CWindowImpl
{
public:
// 1. The NULL parameter means ATL will generate a
// name for the superclass
// 2. The "EDIT" parameter means the superclass is
// based on the standard Windows Edit box
DECLARE_WND_SUPERCLASS(NULL, _T("EDIT"))
// Remainder of class declaration omitted
[!メモ]
CWndClassInfo が一つのウィンドウ クラスの情報を管理するため、CWindowImpl のインスタンスによって作成された各ウィンドウは、同じウィンドウ クラスに基づいています。
CWindowImpl は、サブクラス化ウィンドウをサポートします。SubclassWindow のメソッドは CWindowImpl のオブジェクトに既存のウィンドウをアタッチし、CWindowImpl::WindowProcにウィンドウ プロシージャを変更します。CWindowImpl の各インスタンスは、サブクラスを別のペインできます。
[!メモ]
CWindowImpl の特定のオブジェクト、[作成] か SubclassWindowを呼び出します。同じオブジェクトの両方のメソッドを呼び出す必要があります。
CWindowImplに加えて、ATL は別のオブジェクトに含まれているウィンドウを作成するに CContainedWindow を提供します。
オブジェクトが破棄される前にウィンドウを代入するを基本クラスのデストラクター (|) CWindowImplRoot確認します。
CWindowImpl は CWindowImplBaseTから派生します CWindowImplRootから派生 TBase、および CMessageMapから派生します。
の詳細に関する |
参照項目 |
---|---|
コントロールの作成 |
|
ATL ウィンドウを使用する |
|
ATL プロジェクト ウィザード |
|
ウィンドウ |
継承階層
TBase
CWindowImplRoot
CWindowImplBaseT
CWindowImpl
必要条件
Header: atlwin.h