다음을 통해 공유


SetSystemPaletteUse 함수(wingdi.h)

SetSystemPaletteUse 함수를 사용하면 애플리케이션에서 시스템 팔레트에 2 또는 20개의 정적 색이 포함되어 있는지 여부를 지정할 수 있습니다. 기본 시스템 팔레트에는 20가지 정적 색이 포함되어 있습니다. (애플리케이션에서 논리적 팔레트를 인식하면 정적 색을 변경할 수 없습니다.)

구문

UINT SetSystemPaletteUse(
  [in] HDC  hdc,
  [in] UINT use
);

매개 변수

[in] hdc

디바이스 컨텍스트에 대한 핸들입니다. 이 디바이스 컨텍스트는 색상표를 지원하는 디바이스를 참조해야 합니다.

[in] use

시스템 팔레트의 새로운 사용. 이 매개 변수는 다음 값 중 하나일 수 있습니다.

의미
SYSPAL_NOSTATIC
시스템 색상표에는 두 가지 정적 색(흑백)이 포함됩니다.
SYSPAL_NOSTATIC256
시스템 색상표에는 정적 색이 없습니다.
SYSPAL_STATIC
시스템 팔레트에는 애플리케이션이 논리적 팔레트를 인식할 때 변경되지 않는 정적 색이 포함되어 있습니다.

반환 값

함수가 성공하면 반환 값은 이전 시스템 팔레트입니다. SYSPAL_NOSTATIC, SYSPAL_NOSTATIC256 또는 SYSPAL_STATIC 수 있습니다.

함수가 실패하면 반환 값이 SYSPAL_ERROR.

설명

애플리케이션은 GetDeviceCaps 함수를 호출하고 RASTERCAPS 상수를 지정하여 디바이스가 팔레트 작업을 지원하는지 여부를 확인할 수 있습니다.

애플리케이션 창이 포그라운드로 이동하고 SYSPAL_NOSTATIC 값이 설정되면 애플리케이션은 GetSysColor 함수를 호출하여 현재 시스템 색 설정을 저장해야 합니다. 또한 SetSysColors를 호출하여 흑백만 사용하여 적절한 값을 설정해야 합니다. 애플리케이션이 백그라운드로 반환되거나 종료되면 이전 시스템 색을 복원해야 합니다.

함수가 SYSPAL_ERROR 반환하는 경우 지정된 디바이스 컨텍스트가 잘못되었거나 색상표를 지원하지 않습니다.

애플리케이션은 창이 최대화되고 입력 포커스가 있는 경우에만 이 함수를 호출해야 합니다.

애플리케이션이 uUsage가 SYSPAL_NOSTATIC 설정된 SetSystemPaletteUse를 호출하는 경우 시스템은 각각 순수 흰색 및 순수 검정에 대해 시스템 팔레트에 두 개의 항목을 따로 설정합니다.

uUsage가 SYSPAL_NOSTATIC 설정된 상태에서 이 함수를 호출한 후 애플리케이션은 다음 단계를 수행해야 합니다.

  1. 논리적 팔레트를 실현합니다.
  2. GetSysColor 함수를 호출하여 현재 시스템 색 설정을 저장합니다.
  3. SetSysColors 함수를 호출하여 시스템 색을 흑백을 사용하여 적절한 값으로 설정합니다. 예를 들어 인접하거나 겹치는 항목(예: 창 프레임 및 테두리)은 각각 흑백으로 설정해야 합니다.
  4. WM_SYSCOLORCHANGE 메시지를 다른 최상위 창으로 보내 새 시스템 색으로 다시 그릴 수 있도록 합니다.
애플리케이션 창이 포커스를 잃거나 닫히면 애플리케이션은 다음 단계를 수행해야 합니다.
  1. uUsage 매개 변수가 SYSPAL_STATIC 설정된 SetSystemPaletteUse를 호출합니다.
  2. 논리적 팔레트를 실현합니다.
  3. 시스템 색을 이전 값으로 복원합니다.
  4. WM_SYSCOLORCHANGE 메시지를 보냅니다.

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 wingdi.h(Windows.h 포함)
라이브러리 Gdi32.lib
DLL Gdi32.dll

추가 정보

색 함수

색 개요

GetDeviceCaps

GetSysColor

GetSystemPaletteUse

SetSysColors