Principy vlastností okna
Třídy vlastností oken poskytují jednoduchou metodu pro standardizaci stylů používaných k vytvoření objektu okna ATL. Vlastnosti okna jsou přijímány jako parametry šablony CWindowImpl a další třídy oken ATL jako způsob poskytování výchozích stylů oken na úrovni třídy.
Pokud tvůrce instance okna neposkytuje styly explicitně ve volání vytvořit, můžete pomocí třídy vlastností zajistit, aby okno stále bylo vytvořeno se správnými styly. Můžete dokonce zajistit, aby byly určité styly nastaveny pro všechny instance této třídy okna a zároveň povolovat nastavení jiných stylů na základě jednotlivých instancí.
Šablony vlastností oken ATL
ATL poskytuje dvě šablony vlastností oken, které umožňují nastavit výchozí styly v době kompilace pomocí jejich parametrů šablony.
Třída | Popis |
---|---|
CWinTraits | Tuto šablonu použijte, pokud chcete zadat výchozí styly oken, které budou použity pouze v případě, že nejsou zadány žádné jiné styly ve volání Create . Styly poskytované za běhu mají přednost před styly nastavenými v době kompilace. |
CWinTraitsOR | Tuto třídu použijte, pokud chcete zadat styly, které musí být vždy nastaveny pro třídu okna. Styly poskytované za běhu se kombinují se styly nastavenými v době kompilace pomocí bitového operátoru OR. |
Kromě těchto šablon poskytuje ATL řadu předdefinovaných specializace šablony CWinTraits
pro běžně používané kombinace stylů oken. Úplné podrobnosti najdete v referenční dokumentaci k CWinTraits .
Vlastní vlastnosti oken
V nepravděpodobné situaci, že specializované na jednu ze šablon poskytovaných ATL není dostatečné a potřebujete vytvořit vlastní třídu vlastností, stačí vytvořit třídu, která implementuje dvě statické funkce: GetWndStyle
a GetWndStyleEx
:
static DWORD GetWndStyle(DWORD dwStyle);
static DWORD GetWndExStyle(DWORD dwExStyle);
Každá z těchto funkcí bude předána nějakou hodnotu stylu za běhu, kterou může použít k vytvoření nové hodnoty stylu. Pokud se třída vlastností okna používá jako argument šablony třídy okna ATL, hodnoty stylu předané těmto statickým funkcím budou bez ohledu na to, co bylo předáno jako argumenty stylu k vytvoření.