Freigeben über


TN070: MFC-Fensterklassennamen

Hinweis

Der folgende technische Hinweis wurde seit der ersten Aufnahme in die Onlinedokumentation nicht aktualisiert. Daher sind einige Prozeduren und Themen möglicherweise veraltet oder falsch. Für die neuesten Informationen empfiehlt es sich, nach dem interessanten Thema im Onlinedokumentationsindex 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 hIconnull sind.

Siehe auch

Technische Hinweise nach Nummer
Technische Hinweise nach Kategorie
TN020: ID-Benennungs- und Nummerierungskonventionen