次の方法で共有


CWndClassInfo クラス

このクラスでは、ウィンドウ クラスの情報を登録するためのメソッドが提供されます。

重要

このクラスとそのメンバーは、Windows ランタイムで実行するアプリケーションで使用することはできません。

構文

class CWndClassInfo

メンバー

パブリック メソッド

名前 説明
[登録] ウィンドウ クラスを登録します。

データ メンバー

名前 説明
m_atom 登録済みのウィンドウ クラスを一意に識別します。
m_bSystemCursor カーソル リソースでシステム カーソルを参照するか、モジュール リソースに含まれるカーソルを参照するかを指定します。
m_lpszCursorID システム リソースの名前を指定します。
m_lpszOrigName 既存のウィンドウ クラスの名前を含みます。
m_szAutoName ATL によって生成されたウィンドウ クラスの名前を保持します。
m_wc ウィンドウ クラスの情報を WNDCLASSEX 構造体に保持します。
pWndProc 既存のウィンドウ クラスのウィンドウ プロシージャを指します。

解説

CWndClassInfo ではウィンドウ クラスの情報を管理します。 通常は、次の表で説明されているように、DECLARE_WND_CLASS、DECLARE_WND_CLASS_EX、DECLARE_WND_SUPERCLASS の 3 つのマクロのいずれかを介して CWndClassInfo を使用します。

マクロ 説明
DECLARE_WND_CLASS CWndClassInfo では新しいウィンドウ クラスの情報を登録します。
DECLARE_WND_CLASS_EX CWndClassInfo では、クラス パラメーターを含む新しいウィンドウ クラスの情報を登録します。
DECLARE_WND_SUPERCLASS CWndClassInfo では、既存のクラスに基づいているものの、別のウィンドウ プロシージャを使用するウィンドウ クラスの情報を登録します。 これはスーパークラスと呼ばれる手法です。

既定では、CWindowImpl に、新しいウィンドウ クラスに基づいてウィンドウを作成するための DECLARE_WND_CLASS マクロが含まれます。 DECLARE_WND_CLASS では、コントロールの既定のスタイルと背景色が提供されます。 スタイルと背景色を自分で指定する場合は、CWindowImpl からクラスを派生させ、クラス定義に DECLARE_WND_CLASS_EX マクロを含めます。

既存のウィンドウ クラスに基づいてウィンドウを作成する場合は、CWindowImpl からクラスを派生させ、クラス定義に DECLARE_WND_SUPERCLASS マクロを含めます。 次に例を示します。

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

ウィンドウ クラスの詳細については、Windows SDK のウィンドウ クラスに関するページを参照してください。

ATL でのウィンドウの使用について詳しくは、「ATL ウィンドウ クラス」の記事を参照してください。

要件

ヘッダー: atlwin.h

CWndClassInfo::m_atom

登録済みのウィンドウ クラスの一意識別子を含みます。

ATOM m_atom;

CWndClassInfo::m_bSystemCursor

TRUE の場合、ウィンドウ クラスが登録されるときにシステム カーソル リソースが読み込まれます。

BOOL m_bSystemCursor;

解説

それ以外の場合は、モジュールに含まれるカーソル リソースが読み込まれます。

CWndClassInfo では、DECLARE_WND_CLASS (CWindowImpl の既定値) または DECLARE_WND_CLASS_EX マクロが指定されている場合にのみ m_bSystemCursor を使用します。 この場合、m_bSystemCursor は TRUE に初期化されます。 詳細については、CWndClassInfo の概要に関するページを参照してください。

CWndClassInfo::m_lpszCursorID

カーソル リソースの名前、または下位ワードにリソース識別子および上位ワードに 0 を指定します。

LPCTSTR m_lpszCursorID;

解説

ウィンドウ クラスが登録されると、m_lpszCursorID によって識別されるカーソルへのハンドルが取得され、m_wc によって格納されます。

CWndClassInfo では、DECLARE_WND_CLASS (CWindowImpl の既定値) または DECLARE_WND_CLASS_EX マクロが指定されている場合にのみ m_lpszCursorID を使用します。 この場合、m_lpszCursorID は IDC_ARROW に初期化されます。 詳細については、CWndClassInfo の概要に関するページを参照してください。

CWndClassInfo::m_lpszOrigName

既存のウィンドウ クラスの名前を含みます。

LPCTSTR m_lpszOrigName;

解説

CWndClassInfo では、クラス定義に DECLARE_WND_SUPERCLASS マクロを含める場合にのみ、m_lpszOrigName を使用します。 この場合、CWndClassInfo では、m_lpszOrigName によって名前が付けられたクラスに基づいてウィンドウ クラスを登録します。 詳細については、CWndClassInfo の概要に関するページを参照してください。

CWndClassInfo::m_szAutoName

ウィンドウ クラスの名前を保持します。

TCHAR m_szAutoName[13];

解説

CWndClassInfo では、DECLARE_WND_CLASSDECLARE_WND_CLASS_EX または DECLARE_WND_SUPERCLASS に対する WndClassName パラメーターに NULL が渡された場合にのみ、m_szAutoName を使用します。 ウィンドウ クラスが登録されている場合、ATL によって名前が作成されます。

CWndClassInfo::m_wc

ウィンドウ クラスの情報を WNDCLASSEX 構造体に保持します。

WNDCLASSEX m_wc;

解説

DECLARE_WND_CLASS (CWindowImpl の既定値) または DECLARE_WND_CLASS_EX マクロを指定した場合は、m_wc に新しいウィンドウ クラスに関する情報が含まれます。

DECLARE_WND_SUPERCLASS マクロを指定した場合、m_wc にはスーパークラスに関する情報が含まれます。これは、既存のクラスに基づいているものの、別のウィンドウ プロシージャを使用するウィンドウ クラスです。 m_lpszOrigNamepWndProc では、既存のウィンドウ クラスの名前とウィンドウ プロシージャをそれぞれ保存します。

CWndClassInfo::pWndProc

既存のウィンドウ クラスのウィンドウ プロシージャを指します。

WNDPROC pWndProc;

解説

CWndClassInfo では、クラス定義に DECLARE_WND_SUPERCLASS マクロを含める場合にのみ、pWndProc を使用します。 この場合、CWndClassInfo では、既存のクラスに基づいているものの、別のウィンドウ プロシージャを使用するウィンドウ クラスを登録します。 既存のウィンドウ クラスのウィンドウ プロシージャは、pWndProc に保存されます。 詳細については、CWndClassInfo の概要に関するページを参照してください。

CWndClassInfo::Register

ウィンドウ クラスがまだ登録されていない場合は、それを登録するために CWindowImpl::Create によって呼び出されます。

ATOM Register(WNDPROC* pProc);

パラメーター

pProc
[出力] 既存のウィンドウ クラスの元のウィンドウ プロシージャを指定します。

戻り値

成功した場合は、登録されるウィンドウ クラスを一意に識別する atom。 それ以外の場合は、0 に設定されます。

解説

DECLARE_WND_CLASS (CWindowImpl の既定値) または DECLARE_WND_CLASS_EX マクロを指定した場合、Register では新しいウィンドウ クラスを登録します。 この場合、pProc パラメーターは使用されません。

DECLARE_WND_SUPERCLASS マクロを指定した場合、Register ではスーパークラスを登録します。これは、既存のクラスに基づいているものの、別のウィンドウ プロシージャを使用するウィンドウ クラスです。 既存のウィンドウ クラスのウィンドウ プロシージャは、pProc で返されます。

関連項目

CComControl クラス
クラスの概要