CWndClassInfo-Klasse
Diese Klasse stellt Methoden zum Registrieren von Informationen für eine Fensterklasse bereit.
Wichtig
Diese Klasse und ihre Member können nicht in Anwendungen verwendet werden, die in der Windows-Runtime ausgeführt werden.
Syntax
class CWndClassInfo
Member
Öffentliche Methoden
Name | Beschreibung |
---|---|
Registrieren | Registriert die Fensterklasse. |
Datenelemente
Name | Beschreibung |
---|---|
m_atom | Identifiziert die registrierte Fensterklasse eindeutig. |
m_bSystemCursor | Gibt an, ob die Cursorressource auf einen Systemcursor oder auf einen Cursor verweist, der in einer Modulressource enthalten ist. |
m_lpszCursorID | Gibt den Namen der Cursorressource an. |
m_lpszOrigName | Enthält den Namen einer vorhandenen Fensterklasse. |
m_szAutoName | Enthält einen ATL-generierten Namen der Fensterklasse. |
m_wc | Verwaltet Fensterklasseninformationen in einer WNDCLASSEX Struktur. |
pWndProc | Verweist auf die Fensterprozedur einer vorhandenen Fensterklasse. |
Hinweise
CWndClassInfo
verwaltet die Informationen einer Fensterklasse. Normalerweise verwenden CWndClassInfo
Sie eines von drei Makros, DECLARE_WND_CLASS, DECLARE_WND_CLASS_EX oder DECLARE_WND_SUPERCLASS, wie in der folgenden Tabelle beschrieben:
Makro | Beschreibung |
---|---|
DECLARE_WND_CLASS | CWndClassInfo registriert Informationen für eine neue Fensterklasse. |
DECLARE_WND_CLASS_EX | CWndClassInfo registriert Informationen für eine neue Fensterklasse, einschließlich der Klassenparameter. |
DECLARE_WND_SUPERCLASS | CWndClassInfo registriert Informationen für eine Fensterklasse, die auf einer vorhandenen Klasse basiert, aber eine andere Fensterprozedur verwendet. Diese Technik wird als Superklassifizierung bezeichnet. |
Standardmäßig enthält CWindowImpl das DECLARE_WND_CLASS
Makro, um ein Fenster basierend auf einer neuen Fensterklasse zu erstellen. DECLARE_WND_CLASS stellt Standardformatvorlagen und Hintergrundfarbe für das Steuerelement bereit. Wenn Sie die Format- und Hintergrundfarbe selbst angeben möchten, leiten Sie ihre Klasse ab CWindowImpl
und fügen Sie das DECLARE_WND_CLASS_EX Makro in die Klassendefinition ein.
Wenn Sie ein Fenster basierend auf einer vorhandenen Fensterklasse erstellen möchten, leiten Sie Ihre Klasse von der klasse ab CWindowImpl
und fügen Sie das DECLARE_WND_SUPERCLASS Makro in die Klassendefinition ein. Zum Beispiel:
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
Weitere Informationen zu Fensterklassen finden Sie unter "Window Classes " im Windows SDK.
Weitere Informationen zur Verwendung von Fenstern in ATL finden Sie im Artikel ATL-Fensterklassen.
Anforderungen
Kopfzeile: atlwin.h
CWndClassInfo::m_atom
Enthält den eindeutigen Bezeichner für die registrierte Fensterklasse.
ATOM m_atom;
CWndClassInfo::m_bSystemCursor
Wenn TRUE, wird die Systemcursorressource geladen, wenn die Fensterklasse registriert wird.
BOOL m_bSystemCursor;
Hinweise
Andernfalls wird die in Ihrem Modul enthaltene Cursorressource geladen.
CWndClassInfo
wird nur verwendet m_bSystemCursor
, wenn das DECLARE_WND_CLASS (standard in CWindowImpl) oder das DECLARE_WND_CLASS_EX Makro angegeben wird. In diesem Fall m_bSystemCursor
wird true initialisiert. Weitere Informationen finden Sie in der Übersicht über CWndClassInfo.
CWndClassInfo::m_lpszCursorID
Gibt entweder den Namen der Cursorressource oder den Ressourcenbezeichner im Wort mit niedriger Reihenfolge und 0 im Wort mit hoher Reihenfolge an.
LPCTSTR m_lpszCursorID;
Hinweise
Wenn die Fensterklasse registriert ist, wird der von m_wc identifizierte Handle für den durch den Cursor identifizierten m_lpszCursorID
Cursor abgerufen und gespeichert.
CWndClassInfo
wird nur verwendet m_lpszCursorID
, wenn das DECLARE_WND_CLASS (standard in CWindowImpl) oder das DECLARE_WND_CLASS_EX Makro angegeben wird. In diesem Fall wird initialisiert, m_lpszCursorID
um IDC_ARROW. Weitere Informationen finden Sie in der Übersicht über CWndClassInfo.
CWndClassInfo::m_lpszOrigName
Enthält den Namen einer vorhandenen Fensterklasse.
LPCTSTR m_lpszOrigName;
Hinweise
CWndClassInfo
wird nur verwendet m_lpszOrigName
, wenn Sie das DECLARE_WND_SUPERCLASS Makro in die Klassendefinition einschließen. In diesem Fall CWndClassInfo
registriert eine Fensterklasse basierend auf der von m_lpszOrigName
. Weitere Informationen finden Sie in der Übersicht über CWndClassInfo.
CWndClassInfo::m_szAutoName
Enthält den Namen der Fensterklasse.
TCHAR m_szAutoName[13];
Hinweise
CWndClassInfo
wird m_szAutoName
nur verwendet, wenn NULL für den WndClassName
Parameter an DECLARE_WND_CLASS, den DECLARE_WND_CLASS_EX oder DECLARE_WND_SUPERCLASS übergeben wird. ATL erstellt einen Namen, wenn die Fensterklasse registriert ist.
CWndClassInfo::m_wc
Verwaltet die Fensterklasseninformationen in einer WNDCLASSEX-Struktur .
WNDCLASSEX m_wc;
Hinweise
Wenn Sie die DECLARE_WND_CLASS (standard in CWindowImpl) oder das DECLARE_WND_CLASS_EX Makro angegeben haben, m_wc
enthält sie Informationen zu einer neuen Fensterklasse.
Wenn Sie das DECLARE_WND_SUPERCLASS-Makro angegeben haben, m_wc
enthält Sie Informationen zu einer Superklasse – einer Fensterklasse, die auf einer vorhandenen Klasse basiert, aber eine andere Fensterprozedur verwendet. m_lpszOrigName und pWndProc speichern den Namen bzw. die Fensterprozedur der vorhandenen Fensterklasse.
CWndClassInfo::p WndProc
Verweist auf die Fensterprozedur einer vorhandenen Fensterklasse.
WNDPROC pWndProc;
Hinweise
CWndClassInfo
wird nur verwendet pWndProc
, wenn Sie das DECLARE_WND_SUPERCLASS Makro in die Klassendefinition einschließen. In diesem Fall registriert eine Fensterklasse, die auf einer vorhandenen Klasse basiert, CWndClassInfo
aber eine andere Fensterprozedur verwendet. Die Fensterprozedur der vorhandenen Fensterklasse wird gespeichert pWndProc
. Weitere Informationen finden Sie in der Übersicht über CWndClassInfo.
CWndClassInfo::Register
Wird von CWindowImpl::Create aufgerufen, um die Fensterklasse zu registrieren, wenn sie noch nicht registriert wurde.
ATOM Register(WNDPROC* pProc);
Parameter
pProc
[out] Gibt die ursprüngliche Fensterprozedur einer vorhandenen Fensterklasse an.
Rückgabewert
Bei erfolgreicher Ausführung identifiziert ein Atom die Fensterklasse, die registriert wird. Andernfalls ist es 0.
Hinweise
Wenn Sie den DECLARE_WND_CLASS (standard in CWindowImpl) oder das DECLARE_WND_CLASS_EX Makro angegeben haben, Register
wird eine neue Fensterklasse registriert. In diesem Fall wird der pProc-Parameter nicht verwendet.
Wenn Sie das DECLARE_WND_SUPERCLASS-Makro angegeben haben, Register
registriert sie eine Superklasse – eine Fensterklasse, die auf einer vorhandenen Klasse basiert, aber eine andere Fensterprozedur verwendet. Die Fensterprozedur der vorhandenen Fensterklasse wird in pProc zurückgegeben.