AfxRegisterWndClass
Ermöglicht es Ihnen, eigene Fensterklassen zu registrieren.
LPCTSTR AFXAPI AfxRegisterWndClass(
UINT nClassStyle,
HCURSOR hCursor = 0,
HBRUSH hbrBackground = 0,
HICON hIcon = 0
);
Parameter
nClassStyle
Gibt das Format für Windows-Klassen, oder die Kombination der Formate, erstellt mithilfe des bitweisen OR (**|**Operator für die Fensterklasse).Eine Liste von Klassen Dateiformaten finden Sie auf der WNDCLASS-Struktur in Windows SDK.Wenn NULL, die Standardwerte festgelegt ist wie folgt:Legt das Format der Maus auf CS_DBLCLKS fest, das für die Fensterprozedur auf Meldungen sendet, wenn der Benutzer mit dem Mauszeiger auf den Text doppelklickt.
Legt das Pfeil-Cursor-Format um IDC_ARROW Windows-Standard fest.
Legt den Hintergrundpinsel zu NULL fest, sodass löscht das Fenster nicht den Hintergrund.
Legt das Symbol auf die Standardeinstellung, Wellenartig Symbol bewegen Flag Windows-Logo fest.
hCursor
Gibt ein Handle für die in jedem Fenster zu installierenden Cursorressource, von der Fensterklasse erstellt wird.Wenn Sie den Standardwert von 0 verwenden, rufen Sie den Standard- IDC_ARROW Cursor ab.hbrBackground
Gibt ein Handle für die Verbindung in jedem Fenster zu installierenden Pinselressource, von der Fensterklasse erstellt wird.Wenn Sie den Standardwert von 0 verwenden, haben Sie einen NULL Hintergrundpinsel. Das Fenster standardmäßig löscht nicht den Hintergrund beim Verarbeiten von WM_ERASEBKGND.hIcon
Gibt ein Handle für die in einem Fenster an Symbolressource installiert sein, das von der Fensterklasse erstellt wird.Wenn Sie den Standardwert von 0 verwenden, rufen Sie den Standardnamen, Wellenartig Windows-Logo Flag erfolgen Symbol ab.
Rückgabewert
Eine auf NULL endende Zeichenfolge, die den Klassennamen enthält.Sie können den Klassennamen der Create-Memberfunktion CWnd oder in anderen CWnd- abgeleiteten Klassen übergeben, um ein Fenster zu erstellen.Der Name wird von Microsoft Foundation Class Library generiert.
Hinweis |
---|
Der Rückgabewert ist ein Zeiger auf einen statischen Puffers.Um diese Zeichenfolge zu speichern, weisen Sie sie einer Variablen zu. CString |
Hinweise
Microsoft Foundation Class Library automatisch eine Reihe von standardmäßigen fensterklassen registriert.Rufen Sie diese Funktion auf, wenn Sie eigene Fensterklassen registrieren möchten.
Der Name, der für eine Klasse von AfxRegisterWndClass registriert wird, hängt ausschließlich von Parametern ab.Wenn Sie AfxRegisterWndClass mehrmals mit identischen Parametern aufrufen, registriert es nur eine Klasse beim ersten Aufruf.Nachfolgende Aufrufe AfxRegisterWndClass mit identischen Parametern geben einfach den bereits-registrierten Klassennamen zurück.
Wenn Sie AfxRegisterWndClass für mehrere abgeleitete Klassen von CWnd mit identischen Parametern aufrufen, anstatt eine eigene Fensterklasse für jede Klasse abzurufen, Freigaben jeder Klasse die gleiche Fensterklasse.Dies kann Probleme verursachen, wenn das CS_CLASSDC Format für Klassen verwendet wird.Anstatt mehrere CS_CLASSDC Fensterklassen beenden Sie oben mit einer CS_CLASSDC Fensterklasse und allen C++-Fenstern, die diese Klassen verwenden das gleiche DC verwenden.Sie können dieses Problem vermeiden, rufen Sie AfxRegisterClass, um die Klasse zu registrieren.
Siehe Hinweis technische Informationen zu TN001: Fensterklassen-Registrierung Fensterklassen Registration und die AfxRegisterWndClass-Funktion.
Beispiel
CString strMyClass;
// load stock cursor, brush, and icon for
// my own window class
try
{
strMyClass = AfxRegisterWndClass(
CS_VREDRAW | CS_HREDRAW,
::LoadCursor(NULL, IDC_ARROW),
(HBRUSH) ::GetStockObject(WHITE_BRUSH),
::LoadIcon(NULL, IDI_APPLICATION));
}
catch (CResourceException* pEx)
{
AfxMessageBox(_T("Couldn't register class! (Already registered?)"));
pEx->Delete();
}
Anforderungen
Header: afxwin.h