Einführung in Fenstermerkmale
Window-Eigenschaftenklassen bieten eine einfache Methode zum Standardisieren der Zum Erstellen eines ATL-Fensterobjekts verwendeten Formatvorlagen. Fenstereigenschaften werden von CWindowImpl und anderen ATL-Fensterklassen als Vorlagenparameter akzeptiert, um Standardfensterstile auf Klassenebene bereitzustellen.
Wenn der Ersteller einer Fensterinstanz im Aufruf von Create keine expliziten Formatvorlagen bereitstellt, können Sie eine Eigenschaftenklasse verwenden, um sicherzustellen, dass das Fenster weiterhin mit den richtigen Formatvorlagen erstellt wird. Sie können sogar sicherstellen, dass bestimmte Formatvorlagen für alle Instanzen dieser Fensterklasse festgelegt werden, während andere Formatvorlagen pro Instanz festgelegt werden können.
ATL-Fenstereigenschaftenvorlagen
ATL stellt zwei Fenstereigenschaftenvorlagen bereit, mit denen Sie standardformatvorlagen zur Kompilierzeit mit ihren Vorlagenparametern festlegen können.
Klasse | Beschreibung |
---|---|
CWinTraits | Verwenden Sie diese Vorlage, wenn Sie Standardfensterformatvorlagen bereitstellen möchten, die nur verwendet werden, wenn im Aufruf Create keine anderen Formatvorlagen angegeben werden. Die zur Laufzeit bereitgestellten Formatvorlagen haben Vorrang vor den formatvorlagen, die zur Kompilierungszeit festgelegt wurden. |
CWinTraitsOR | Verwenden Sie diese Klasse, wenn Sie Formatvorlagen angeben möchten, die immer für die Fensterklasse festgelegt werden müssen. Die zur Laufzeit bereitgestellten Formatvorlagen werden mit den zur Kompilierungszeit festgelegten Formatvorlagen mit dem bitweisen OR-Operator kombiniert. |
Zusätzlich zu diesen Vorlagen bietet ATL eine Reihe vordefinierter Spezialisierungen der CWinTraits
Vorlage für häufig verwendete Kombinationen von Fensterformatvorlagen. Ausführliche Informationen finden Sie in der CWinTraits-Referenzdokumentation .
Benutzerdefinierte Fenstereigenschaften
In der unwahrscheinlichen Situation, dass die Spezialisierung auf eine der von ATL bereitgestellten Vorlagen nicht ausreicht und Sie Ihre eigene Eigenschaftsklasse erstellen müssen, müssen Sie nur eine Klasse erstellen, die zwei statische Funktionen implementiert: GetWndStyle
und GetWndStyleEx
:
static DWORD GetWndStyle(DWORD dwStyle);
static DWORD GetWndExStyle(DWORD dwExStyle);
Jede dieser Funktionen wird zur Laufzeit einen Formatvorlagenwert übergeben, den sie zum Erstellen eines neuen Formatvorlagenwerts verwenden kann. Wenn ihre Fenstereigenschaftenklasse als Vorlagenargument für eine ATL-Fensterklasse verwendet wird, werden die an diese statischen Funktionen übergebenen Formatvorlagenwerte als Formatvorlagenargumente an Create übergeben.