Freigeben über


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.

Siehe auch

CComControl-Klasse
Klassenübersicht