다음을 통해 공유


창 클래스 스타일

클래스 스타일은 창 클래스의 추가 요소를 정의합니다. 비트 OR(|) 연산자를 사용하여 둘 이상의 스타일을 결합할 수 있습니다. 창 클래스에 스타일을 할당하려면 WNDCLASSEX 구조체의 스타일 멤버에 스타일을 할당합니다.

    WNDCLASS wc = {};
    wc.lpfnWndProc = s_DropDownWndProc;
    wc.cbWndExtra = sizeof(CTipACDialog *);
    wc.hInstance = g_hInstance;
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
    wc.style = CS_SAVEBITS | CS_DROPSHADOW;
    wc.lpszClassName = s_wzClassName;
    RegisterClass(&wc);

GitHub의 Windows 클래식 샘플 예제입니다.

상수

다음은 창 클래스 스타일입니다.

상수/값 설명
CS_BYTEALIGNCLIENT
0x1000
창의 클라이언트 영역을 바이트 경계(x 방향)에 맞춥니다. 이 스타일은 창의 너비와 디스플레이의 가로 배치에 영향을 줍니다.
CS_BYTEALIGNWINDOW
0x2000
바이트 경계의 창을 x 방향으로 맞춥니다. 이 스타일은 창의 너비와 디스플레이의 가로 배치에 영향을 줍니다.
CS_CLASSDC
0x0040
클래스의 모든 창에서 공유할 하나의 디바이스 컨텍스트를 할당합니다. 창 클래스는 프로세스에 따라 달라지므로 애플리케이션의 여러 스레드에서 동일한 클래스의 창을 만들 수 있습니다. 스레드가 디바이스 컨텍스트를 동시에 사용하려고 시도할 수도 있습니다. 이 경우 시스템에서는 하나의 스레드만 그리기 작업을 성공적으로 완료할 수 있습니다.
CS_DBLCLKS
0x0008
커서가 클래스에 속한 창 내에 있는 동안 사용자가 마우스를 두 번 클릭하면 창 프로시저에 두 번 클릭 메시지를 보냅니다.
CS_DROPSHADOW
0x00020000
창에서 그림자 효과를 사용하도록 설정합니다. 효과는 SPI_SETDROPSHADOW 통해 켜지고 꺼집니다. 일반적으로 메뉴와 같은 수명이 짧은 작은 창에서 다른 창과의 Z 순서 관계를 강조하기 위해 사용하도록 설정됩니다. 이 스타일을 사용하여 클래스에서 만든 Windows는 최상위 창이어야 합니다. 자식 창이 아닐 수 있습니다.
CS_GLOBALCLASS
0x4000
창 클래스가 애플리케이션 전역 클래스임을 나타냅니다. 자세한 내용은 창 클래스 정보의 "애플리케이션 전역 클래스" 섹션 을 참조하세요.
CS_HREDRAW
0x0002
이동 또는 크기 조정이 클라이언트 영역의 너비를 변경하는 경우 전체 창을 다시 그립니다.
CS_NOCLOSE
0x0200
창 메뉴에서 닫기를 사용하지 않도록 설정합니다.
CS_OWNDC
0x0020
클래스의 각 창에 고유한 디바이스 컨텍스트를 할당합니다.
CS_PARENTDC
0x0080
자식 창의 클리핑 사각형을 부모 창의 사각형으로 설정하여 자식이 부모 창에 그릴 수 있도록 합니다. CS_PARENTDC 스타일 비트가 있는 창은 시스템의 디바이스 컨텍스트 캐시에서 일반 디바이스 컨텍스트를 수신합니다. 자녀에게 부모의 디바이스 컨텍스트 또는 디바이스 컨텍스트 설정을 제공하지 않습니다. CS_PARENTDC 지정하면 애플리케이션의 성능이 향상됩니다.
CS_SAVEBITS
0x0800
이 클래스의 창으로 가려진 화면 이미지 부분을 비트맵으로 저장합니다. 창이 제거되면 시스템은 저장된 비트맵을 사용하여 가려진 다른 창을 포함하여 화면 이미지를 복원합니다. 따라서 시스템에서는 비트맵에서 사용하는 메모리가 삭제되지 않았고 다른 화면 작업으로 저장된 이미지가 무효화되지 않은 경우 가려진 창에 WM_PAINT 메시지를 보내지 않습니다.
이 스타일은 다른 화면 작업이 발생하기 전에 짧게 표시되고 제거되는 작은 창(예: 메뉴 또는 대화 상자)에 유용합니다. 이 스타일은 시스템에서 비트맵을 저장하기 위해 먼저 메모리를 할당해야 하므로 창을 표시하는 데 필요한 시간을 늘립니다.
CS_VREDRAW
0x0001
이동 또는 크기 조정이 클라이언트 영역의 높이를 변경하는 경우 전체 창을 다시 그립니다.

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버
Windows 2000 Server[데스크톱 앱만]
헤더
Winuser.h(Windows.h 포함)