CContainedWindowT クラス
このクラスは、別のオブジェクトに含まれているウィンドウを実装します。
重要 |
---|
このクラスおよびメンバーは、Windows のランタイムで実行するアプリケーションで使用することはできません。 |
template <
class TBase= CWindow,
class TWinTraits= CControlWinTraits
>
class CContainedWindowT :
public TBase
パラメーター
TBase
新しいクラスの基本クラス。既定の基本クラスは CWindowです。TWinTraits
並べ替え特性は、目的のウィンドウのスタイルを定義する。既定値は、CControlWinTraits です。
[!メモ]
CContainedWindow は CContainedWindowTから特化したクラスです。基本クラスまたは特性を変更する場合は、CContainedWindowT を直接使用します。
メンバー
パブリック コンストラクター
名前 |
説明 |
---|---|
コンストラクターです。データ メンバーをどのメッセージ マップに含まれているウィンドウのメッセージを処理するか指定するに初期化します。 |
パブリック メソッド
名前 |
説明 |
---|---|
ウィンドウを作成します。 |
|
既定のメッセージの処理を行います。 |
|
現在のメッセージを返します。 |
|
子のペインのウィンドウ クラスを登録します。 |
|
サブクラス ウィンドウ。 |
|
変更が含まれているウィンドウのメッセージを処理するメッセージ マップに使用されます。 |
|
前にサブクラス化されたウィンドウを復元します。 |
|
(静的) 含まれているウィンドウに送信されるメッセージを処理します。 |
パブリック データ メンバー
名前 |
説明 |
---|---|
識別するメッセージ マップに含まれているウィンドウのメッセージを処理します。 |
|
新しいウィンドウ クラスに基づく既存のウィンドウ クラスの名前を指定します。 |
|
ウィンドウ クラスの元のウィンドウ プロシージャへのポインター。 |
|
含むオブジェクトへのポインター。 |
解説
CContainedWindowT は別のオブジェクトに含まれているウィンドウを実装します。CContainedWindowT のウィンドウ プロシージャは適切なハンドラーに直接メッセージに格納されているオブジェクトにメッセージ マップを使用します。CContainedWindowT のオブジェクトを構築するときに、メッセージ マップを使用するかを指定します。
CContainedWindowT は、既存のウィンドウ クラスを superclassing によって新しいウィンドウを作成できるようにします。[作成] のメソッドは、最初に既存のクラスを使用 CContainedWindowT::WindowProcに基づくウィンドウ クラスを登録します。[作成] は、この新しいウィンドウ クラスに基づいてウィンドウを作成します。CContainedWindowT の各インスタンスは、スーパークラスを別のウィンドウ クラスできます。
CContainedWindowT は、サブクラス化ウィンドウをサポートします。SubclassWindow のメソッドは CContainedWindowT のオブジェクトに既存のウィンドウをアタッチし、CContainedWindowT::WindowProcにウィンドウ プロシージャを変更します。CContainedWindowT の各インスタンスは、サブクラスを別のペインできます。
[!メモ]
CContainedWindowT の特定のオブジェクト、[作成] か SubclassWindowを呼び出します。同じオブジェクトの両方のメソッドを呼び出す必要があります。
ATL プロジェクト ウィザードで [コントロールの追加] オプションを使用する場合、ウィザードはコントロールを実装するクラスに自動的に CContainedWindowT のデータ メンバーを追加します。子のペインがどのように宣言する方法を次の例に示します。:
public:
// Declare a contained window data member
CContainedWindow m_ctlEdit;
// Initialize the contained window:
// 1. Pass "Edit" to specify that the contained
// window should be based on the standard
// Windows Edit box
// 2. Pass 'this' pointer to specify that CAtlEdit
// contains the message map to be used for the
// contained window's message processing
// 3. Pass the identifier of the message map. '1'
// identifies the alternate message map declared
// with ALT_MSG_MAP(1)
CAtlEdit()
: m_ctlEdit(_T("Edit"), this, 1)
{
m_bWindowOnly = TRUE;
}
// Declare the default message map, identified by '0'
BEGIN_MSG_MAP(CAtlEdit)
MESSAGE_HANDLER(WM_CREATE, OnCreate)
MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus)
CHAIN_MSG_MAP(CComControl<CAtlEdit>)
// Declare an alternate message map, identified by '1'
ALT_MSG_MAP(1)
MESSAGE_HANDLER(WM_CHAR, OnChar)
END_MSG_MAP()
// Define OnCreate handler
// When the containing window receives a WM_CREATE
// message, create the contained window by calling
// CContainedWindow::Create
LRESULT OnCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/,
BOOL& /*bHandled*/)
{
RECT rc;
GetWindowRect(&rc);
rc.right -= rc.left;
rc.bottom -= rc.top;
rc.top = rc.left = 0;
m_ctlEdit.Create(m_hWnd, rc, _T("hello"), WS_CHILD | WS_VISIBLE |
ES_MULTILINE | ES_AUTOVSCROLL);
return 0;
}
項目 |
参照項目 |
---|---|
コントロールの作成 |
|
ATL ウィンドウを使用する |
|
ATL プロジェクト ウィザード |
|
Windows |
Windows SDKの[ウィンドウ] それ以降のトピック |
継承階層
TBase
CContainedWindowT
必要条件
Header: atlwin.h