| description | Learn more about: CWndClassInfo Class | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| title | CWndClassInfo Class | ||||||||||
| ms.date | 11/04/2016 | ||||||||||
| f1_keywords |
|
||||||||||
| helpviewer_keywords |
|
||||||||||
| ms.assetid | c36fe7e1-75f1-4cf5-a06f-9f59c43fe6fb |
This class provides methods for registering information for a window class.
Important
This class and its members cannot be used in applications that execute in the Windows Runtime.
class CWndClassInfo
| Name | Description |
|---|---|
| Register | Registers the window class. |
| Name | Description |
|---|---|
| m_atom | Uniquely identifies the registered window class. |
| m_bSystemCursor | Specifies whether the cursor resource refers to a system cursor or to a cursor contained in a module resource. |
| m_lpszCursorID | Specifies the name of the cursor resource. |
| m_lpszOrigName | Contains the name of an existing window class. |
| m_szAutoName | Holds an ATL-generated name of the window class. |
| m_wc | Maintains window class information in a WNDCLASSEX structure. |
| pWndProc | Points to the window procedure of an existing window class. |
CWndClassInfo manages the information of a window class. You typically use CWndClassInfo through one of three macros, DECLARE_WND_CLASS, DECLARE_WND_CLASS_EX, or DECLARE_WND_SUPERCLASS, as described in the following table:
| Macro | Description |
|---|---|
| DECLARE_WND_CLASS | CWndClassInfo registers information for a new window class. |
| DECLARE_WND_CLASS_EX | CWndClassInfo registers information for a new window class, including the class parameters. |
| DECLARE_WND_SUPERCLASS | CWndClassInfo registers information for a window class that is based on an existing class but uses a different window procedure. This technique is called superclassing. |
By default, CWindowImpl includes the DECLARE_WND_CLASS macro to create a window based on a new window class. DECLARE_WND_CLASS provides default styles and background color for the control. If you want to specify the style and background color yourself, derive your class from CWindowImpl and include the DECLARE_WND_CLASS_EX macro in your class definition.
If you want to create a window based on an existing window class, derive your class from CWindowImpl and include the DECLARE_WND_SUPERCLASS macro in your class definition. For example:
[!code-cppNVC_ATL_Windowing#43]
For more information about window classes, see Window Classes in the Windows SDK.
For more information about using windows in ATL, see the article ATL Window Classes.
Header: atlwin.h
Contains the unique identifier for the registered window class.
ATOM m_atom;
If TRUE, the system cursor resource will be loaded when the window class is registered.
BOOL m_bSystemCursor;
Otherwise, the cursor resource contained in your module will be loaded.
CWndClassInfo uses m_bSystemCursor only when the DECLARE_WND_CLASS (the default in CWindowImpl) or the DECLARE_WND_CLASS_EX macro is specified. In this case, m_bSystemCursor is initialized to TRUE. For more information, see the CWndClassInfo overview.
Specifies either the name of the cursor resource or the resource identifier in the low-order word and zero in the high-order word.
LPCTSTR m_lpszCursorID;
When the window class is registered, the handle to the cursor identified by m_lpszCursorID is retrieved and stored by m_wc.
CWndClassInfo uses m_lpszCursorID only when the DECLARE_WND_CLASS (the default in CWindowImpl) or the DECLARE_WND_CLASS_EX macro is specified. In this case, m_lpszCursorID is initialized to IDC_ARROW. For more information, see the CWndClassInfo overview.
Contains the name of an existing window class.
LPCTSTR m_lpszOrigName;
CWndClassInfo uses m_lpszOrigName only when you include the DECLARE_WND_SUPERCLASS macro in your class definition. In this case, CWndClassInfo registers a window class based on the class named by m_lpszOrigName. For more information, see the CWndClassInfo overview.
Holds the name of the window class.
TCHAR m_szAutoName[13];
CWndClassInfo uses m_szAutoName only if NULL is passed for the WndClassName parameter to DECLARE_WND_CLASS, the DECLARE_WND_CLASS_EX or DECLARE_WND_SUPERCLASS. ATL will construct a name when the window class is registered.
Maintains the window class information in a WNDCLASSEX structure.
WNDCLASSEX m_wc;
If you have specified the DECLARE_WND_CLASS (the default in CWindowImpl) or the DECLARE_WND_CLASS_EX macro, m_wc contains information about a new window class.
If you have specified the DECLARE_WND_SUPERCLASS macro, m_wc contains information about a superclass — a window class that is based on an existing class but uses a different window procedure. m_lpszOrigName and pWndProc save the existing window class's name and window procedure, respectively.
Points to the window procedure of an existing window class.
WNDPROC pWndProc;
CWndClassInfo uses pWndProc only when you include the DECLARE_WND_SUPERCLASS macro in your class definition. In this case, CWndClassInfo registers a window class that is based on an existing class but uses a different window procedure. The existing window class's window procedure is saved in pWndProc. For more information, see the CWndClassInfo overview.
Called by CWindowImpl::Create to register the window class if it has not yet been registered.
ATOM Register(WNDPROC* pProc);
pProc
[out] Specifies the original window procedure of an existing window class.
If successful, an atom that uniquely identifies the window class being registered. Otherwise, 0.
If you have specified the DECLARE_WND_CLASS (the default in CWindowImpl) or the DECLARE_WND_CLASS_EX macro, Register registers a new window class. In this case, the pProc parameter is not used.
If you have specified the DECLARE_WND_SUPERCLASS macro, Register registers a superclass — a window class that is based on an existing class but uses a different window procedure. The existing window class's window procedure is returned in pProc.