TN070: MFC-Fensterklassennamen

Hinweis

Der folgende technische Hinweis wurde seit dem ersten Erscheinen in der Onlinedokumentation nicht aktualisiert. Daher können einige Verfahren und Themen veraltet oder falsch sein. Um aktuelle Informationen zu erhalten, wird empfohlen, das gewünschte Thema im Index der Onlinedokumentation zu suchen.

MFC-Fenster verwenden einen dynamisch erstellten Klassennamen, der die Features des Fensters widerspiegelt. MFC generiert Klassennamen dynamisch für Framefenster, Ansichten und Popupfenster, die von der Anwendung erstellt werden. Dialogfelder und Steuerelemente, die von einer MFC-Anwendung erstellt werden, weisen den windows-angegebenen Namen für die betreffende Fensterklasse auf.

Sie können den dynamisch bereitgestellten Klassennamen ersetzen, indem Sie Ihre eigene Fensterklasse registrieren und in einer Außerkraftsetzung von PreCreateWindow verwenden. Die von MFC bereitgestellten Klassennamen passen in eine der beiden folgenden Formen:

Afx:%x:%x
Afx:%x:%x:%x:%x:%x

Die Hexadezimierungen, die die %x Zeichen ersetzen, werden aus Daten aus der WNDCLASS-Struktur ausgefüllt. MFC verwendet diese Technik, sodass mehrere C++-Klassen, die identische WNDCLASS-Strukturen erfordern, dieselbe registrierte Fensterklasse gemeinsam nutzen können. Im Gegensatz zu den meisten einfachen Win32-Anwendungen verfügen MFC-Anwendungen nur über einen WNDPROC, sodass Sie WNDCLASS-Strukturen problemlos freigeben können, um Zeit und Arbeitsspeicher zu sparen. Die ersetzbaren Werte für die %x oben gezeigten Zeichen sind wie folgt:

  • WNDCLASS.hInstance

  • WNDCLASS.style

  • WNDCLASS.hCursor

  • WNDCLASS.hbrBackground

  • WNDCLASS.hIcon

Das erste Formular (Afx:%x:%x) wird verwendet, wenn hCursor, hbrBackground und hIcon null sind.

Siehe auch

Technische Hinweise – nach Nummern geordnet
Technische Hinweise – nach Kategorien geordnet
TN020: ID-Benennungs- und Nummerierungskonventionen