次の方法で共有


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 です。

メンバー

h4616bh2.collapse_all(ja-jp,VS.110).gifパブリック メソッド

名前

説明

CWindowImpl::Create

ウィンドウを作成します。

h4616bh2.collapse_all(ja-jp,VS.110).gifCWindowImplBaseT のメソッド

DefWindowProc

既定のメッセージの処理を行います。

GetCurrentMessage

現在のメッセージを返します。

GetWindowProc

現在のウィンドウ プロシージャを返します。

OnFinalMessage

最後のメッセージ (通常は WM_NCDESTROY) を受信すると呼び出されます。

SubclassWindow

サブクラス ウィンドウ。

UnsubclassWindow

前にサブクラス化されたウィンドウを復元します。

h4616bh2.collapse_all(ja-jp,VS.110).gif静的メソッド

GetWndClassInfo

ウィンドウ クラスの情報を管理する CWndClassInfoの静的インスタンスを返します。

WindowProc

ウィンドウに送信されるメッセージを処理します。

h4616bh2.collapse_all(ja-jp,VS.110).gifデータ メンバー

m_pfnSuperWindowProc

ウィンドウ クラスの元のウィンドウ プロシージャへのポインター。

解説

CWindowImpl は、既存のウィンドウ新しいウィンドウまたはサブクラスを作成することができます。CWindowImpl のウィンドウ プロシージャは適切なハンドラーにメッセージを指示するためにメッセージ マップを使用します。

CWindowImpl::CreateCWndClassInfoによって管理されるウィンドウ クラスの情報に基づいて新しいウィンドウを作成します。CWindowImplCWndClassInfo は新しいウィンドウ クラスを登録することを意味する 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確認します。

CWindowImplCWindowImplBaseTから派生します CWindowImplRootから派生 TBase、および CMessageMapから派生します。

の詳細に関する

参照項目

コントロールの作成

ATL チュートリアル

ATL ウィンドウを使用する

ATL ウィンドウ クラス

ATL プロジェクト ウィザード

ATL プロジェクトの作成

ウィンドウ

Windows の手順について

継承階層

CMessageMap

TBase

CWindowImplRoot

CWindowImplBaseT

CWindowImpl

必要条件

Header: atlwin.h

参照

関連項目

BEGIN_MSG_MAP

CComControl クラス

その他の技術情報

ATL クラスの概要