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_CLASS、DECLARE_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_lpszOrigName と pWndProc では、既存のウィンドウ クラスの名前とウィンドウ プロシージャをそれぞれ保存します。
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 で返されます。