창 특성 이해
창 특성 클래스는 ATL 창 개체를 만드는 데 사용되는 스타일을 표준화하는 간단한 메서드를 제공합니다. 창 특성은 클래스 수준에서 기본 창 스타일을 제공하는 방법으로 CWindowImpl 및 기타 ATL 창 클래스에서 템플릿 매개 변수로 허용됩니다.
창 인스턴스의 작성자가 Create 호출에서 명시적으로 스타일을 제공하지 않는 경우 특성 클래스를 사용하여 창이 올바른 스타일로 계속 만들어지도록 할 수 있습니다. 다른 스타일을 인스턴스별로 설정하도록 허용하면서 해당 창 클래스의 모든 인스턴스에 대해 특정 스타일을 설정하도록 할 수도 있습니다.
ATL 창 특성 템플릿
ATL은 템플릿 매개 변수를 사용하여 컴파일 시간에 기본 스타일을 설정할 수 있는 두 가지 창 특성 템플릿을 제공합니다.
클래스 | 설명 |
---|---|
CWinTraits | 호출에 다른 스타일이 지정되지 않은 경우에만 사용할 기본 창 스타일을 제공하려는 경우 이 템플릿을 Create 사용합니다. 런타임에 제공되는 스타일이 컴파일 시간에 설정된 스타일보다 우선합니다. |
CWinTraitsOR | 창 클래스에 대해 항상 설정해야 하는 스타일을 지정하려면 이 클래스를 사용합니다. 런타임에 제공된 스타일은 비트 OR 연산자를 사용하여 컴파일 시간에 설정된 스타일과 결합됩니다. |
이러한 템플릿 외에도 ATL은 일반적으로 사용되는 창 스타일 조합에 CWinTraits
대해 템플릿의 미리 정의된 다양한 특수화를 제공합니다. 자세한 내용은 CWinTraits 참조 설명서를 참조하세요.
사용자 지정 창 특성
ATL에서 제공하는 템플릿 중 하나를 특수화하기에 충분하지 않고 고유한 특성 클래스를 만들어야 하는 드문 상황에서는 다음 두 정적 함수 GetWndStyle
GetWndStyleEx
를 구현하는 클래스를 만들어야 합니다.
static DWORD GetWndStyle(DWORD dwStyle);
static DWORD GetWndExStyle(DWORD dwExStyle);
이러한 각 함수는 런타임에 새 스타일 값을 생성하는 데 사용할 수 있는 일부 스타일 값을 전달합니다. 창 특성 클래스를 ATL 창 클래스에 대한 템플릿 인수로 사용하는 경우 이러한 정적 함수에 전달된 스타일 값은 Create에 대한 스타일 인수로 전달된 값입니다.