Window Class Macros
The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.
The latest version of this topic can be found at Window Class Macros.
These macros define window class utilities.
DECLARE_WND_CLASS | Allows you to specify the name of a new window class. |
DECLARE_WND_SUPERCLASS | Allows you to specify the name of an existing window class on which a new window class will be based. |
DECLARE_WND_CLASS_EX | Allows you to specify the parameters of a class. |
DECLARE_WND_CLASS
Allows you to specify the name of a new window class. Place this macro in an ATL ActiveX control's control class.
DECLARE_WND_CLASS(Â
WndClassName Â)
Parameters
WndClassName
[in] The name of the new window class. If NULL, ATL will generate a window class name.
Remarks
This macro allows you to specify the name of a new window class whose information will be managed by CWndClassInfo. DECLARE_WND_CLASS
defines the new window class by implementing the following static function:
static CWndClassInfo& GetWndClassInfo();
DECLARE_WND_CLASS
specifies the following styles for the new window:
CS_HREDRAW
CS_VREDRAW
CS_DBLCLKS
DECLARE_WND_CLASS
also specifies the default window's background color. Use the DECLARE_WND_CLASS_EX macro to provide your own styles and background color.
CWindowImpl uses the DECLARE_WND_CLASS
macro to create a window based on a new window class. To override this behavior, use the DECLARE_WND_SUPERCLASS macro, or provide your own implementation of the GetWndClassInfo function.
For more information about using windows in ATL, see the article ATL Window Classes.
DECLARE_WND_SUPERCLASS
Allows you to specify the parameters of a class. Place this macro in an ATL ActiveX control's control class.
DECLARE_WND_SUPERCLASS(Â
WndClassName, Â
OrigWndClassName Â)
Parameters
WndClassName
[in] The name of the window class that will superclass OrigWndClassName
. If NULL, ATL will generate a window class name.
OrigWndClassName
[in] The name of an existing window class.
Remarks
This macro allows you to specify the name of a window class that will superclass an existing window class. CWndClassInfo manages the information of the superclass.
DECLARE_WND_SUPERCLASS
implements the following static function:
static CWndClassInfo& GetWndClassInfo();
By default, CWindowImpl uses the DECLARE_WND_CLASS macro to create a window based on a new window class. By specifying the DECLARE_WND_SUPERCLASS
macro in a CWindowImpl
-derived class, the window class will be based on an existing class but will use your window procedure. This technique is called superclassing.
Besides using the DECLARE_WND_CLASS
and DECLARE_WND_SUPERCLASS
macros, you can override the GetWndClassInfo function with your own implementation.
For more information about using windows in ATL, see the article ATL Window Classes.
DECLARE_WND_CLASS_EX
Allows you to specify the name of an existing window class on which a new window class will be based. Place this macro in an ATL ActiveX control's control class.
DECLARE_WND_CLASS_EX(Â
WndClassName, Â
style, Â
bkgnd Â)
Parameters
WndClassName
[in] The name of the new window class. If NULL, ATL will generate a window class name.
style
[in] The style of the window.
bkgnd
[in] The background color of the window.
Remarks
This macro allows you to specify the class parameters of a new window class, whose information will be managed by CWndClassInfo. DECLARE_WND_CLASS_EX
defines the new window class by implementing the following static function:
static CWndClassInfo& GetWndClassInfo();
If you want to use the default styles and background color, use the DECLARE_WND_CLASS macro. For more information about using windows in ATL, see the article ATL Window Classes.