description | title | ms.date | f1_keywords | helpviewer_keywords | ms.assetid | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Learn more about: CWndClassInfo Class |
CWndClassInfo Class |
11/04/2016 |
|
|
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.