共用方式為


了解視窗特性

視窗特性類別提供簡單的方法來標準化用於建立 ATL 視窗對象的樣式。 CWindowImpl 和其他 ATL 視窗類別接受視窗特性做為範本參數,做為在類別層級提供預設視窗樣式的方式。

如果窗口實例的建立者未在呼叫 Create 中明確提供樣式,您可以使用特性類別來確保視窗仍以正確的樣式建立。 您甚至可以確保針對該視窗類別的所有實例設定特定樣式,同時允許個別實例設定其他樣式。

ATL 視窗特性範本

ATL 提供兩個視窗特性範本,可讓您在編譯時期使用其範本參數來設定預設樣式。

類別 描述
CWinTraits 當您想要提供預設視窗樣式時,只有在呼叫 Create中未指定其他樣式時,才會使用此範本。 運行時間提供的樣式優先於編譯時期所設定的樣式。
CWinTraitsOR 當您想要指定一律為視窗類別設定的樣式時,請使用這個類別。 運行時間提供的樣式會與使用位 OR 運算符在編譯時期設定的樣式結合。

除了這些範本之外,ATL 還提供一些範本預先 CWinTraits 定義的特製化,以供常用的視窗樣式組合使用。 如需完整詳細數據, 請參閱 CWinTraits 參考檔。

自訂視窗特性

在專門化 ATL 所提供的其中一個範本並不足以建立自己的特性類別的情況下,您只需要建立實作兩個靜態函式的類別: 和 GetWndStyleExGetWndStyle

static DWORD GetWndStyle(DWORD dwStyle);
static DWORD GetWndExStyle(DWORD dwExStyle);

每個函式都會在運行時間傳遞一些樣式值,可用來產生新的樣式值。 如果您的視窗特性類別做為 ATL 視窗類別的範本自變數,傳遞至這些靜態函式的樣式值將會是傳遞為樣式自變數至 Create 的任何專案。

另請參閱

窗口類別