ChangeDisplaySettingsA 함수(winuser.h)
ChangeDisplaySettings 함수는 기본 디스플레이 디바이스의 설정을 지정된 그래픽 모드로 변경합니다.
지정된 디스플레이 디바이스의 설정을 변경하려면 ChangeDisplaySettingsEx 함수를 사용합니다.
구문
LONG ChangeDisplaySettingsA(
[in] DEVMODEA *lpDevMode,
[in] DWORD dwFlags
);
매개 변수
[in] lpDevMode
새 그래픽 모드를 설명하는 DEVMODE 구조체에 대한 포인터입니다. lpDevMode가 NULL이면 현재 레지스트리에 있는 모든 값이 표시 설정에 사용됩니다. lpDevMode 매개 변수에 대해 NULL을 전달하고 dwFlags 매개 변수에 대해 0을 전달하는 것이 동적 모드 변경 후 기본 모드로 돌아가는 가장 쉬운 방법입니다.
DEVMODE의 dmSize 멤버는 DEVMODE 구조체의 크기(바이트)로 초기화되어야 합니다. DEVMODE 구조 다음에 개인 드라이버 데이터의 바이트 수를 나타내려면 DEVMODE의 dmDriverExtra 멤버를 초기화해야 합니다. 또한 DEVMODE 구조체의 다음 멤버를 모두 사용할 수 있습니다.
멤버 | 의미 |
---|---|
dmBitsPerPel | 픽셀당 비트 수 |
dmPelsWidth | 픽셀 너비 |
dmPelsHeight | 픽셀 높이 |
dmDisplayFlags | 모드 플래그 |
dmDisplayFrequency | 모드 빈도 |
dmPosition | 다중 모니터 구성에서 디바이스의 위치입니다. |
앞의 DEVMODE 멤버 중 하나 이상을 사용하는 것 외에도 dmFields 멤버에서 다음 값 중 하나 이상을 설정하여 표시 설정을 변경해야 합니다.
값 | 의미 |
---|---|
DM_BITSPERPEL | dmBitsPerPel 값을 사용합니다. |
DM_PELSWIDTH | dmPelsWidth 값을 사용합니다. |
DM_PELSHEIGHT | dmPelsHeight 값을 사용합니다. |
DM_DISPLAYFLAGS | dmDisplayFlags 값을 사용합니다. |
DM_DISPLAYFREQUENCY | dmDisplayFrequency 값을 사용합니다. |
DM_POSITION | dmPosition 값을 사용합니다. |
[in] dwFlags
그래픽 모드를 변경하는 방법을 나타냅니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.
CDS_TEST 지정하면 시스템이 해당 그래픽 모드로 변경되지 않고도 애플리케이션에서 실제로 유효한 그래픽 모드를 확인할 수 있습니다.
CDS_UPDATEREGISTRY 지정하고 그래픽 모드를 동적으로 변경할 수 있는 경우 정보가 레지스트리에 저장되고 DISP_CHANGE_SUCCESSFUL 반환됩니다. 그래픽 모드를 동적으로 변경할 수 없는 경우 정보가 레지스트리에 저장되고 DISP_CHANGE_RESTART 반환됩니다.
CDS_UPDATEREGISTRY 지정하고 정보를 레지스트리에 저장할 수 없는 경우 그래픽 모드가 변경되지 않고 DISP_CHANGE_NOTUPDATED 반환됩니다.
반환 값
ChangeDisplaySettings 함수는 다음 값 중 하나를 반환합니다.
반환 코드 | 설명 |
---|---|
|
설정 변경에 성공했습니다. |
|
시스템이 DualView를 사용할 수 있으므로 설정 변경에 실패했습니다. |
|
잘못된 플래그 집합이 전달되었습니다. |
|
그래픽 모드는 지원되지 않습니다. |
|
잘못된 매개 변수가 전달되었습니다. 여기에는 잘못된 플래그 또는 플래그 조합이 포함될 수 있습니다. |
|
디스플레이 드라이버가 지정된 그래픽 모드에 실패했습니다. |
|
레지스트리에 설정을 쓸 수 없습니다. |
|
그래픽 모드가 작동하려면 컴퓨터를 다시 시작해야 합니다. |
설명
ChangeDisplaySettings에 전달된 DEVMODE 구조체가 유효하고 디스플레이 드라이버에서 지원하는 값만 포함하도록 하려면 EnumDisplaySettings 함수에서 반환된 DEVMODE를 사용합니다.
표시 모드가 동적으로 변경되면 다음 메시지 매개 변수를 사용하여 실행 중인 모든 애플리케이션에 WM_DISPLAYCHANGE 메시지가 전송됩니다.
매개 변수 | 의미 |
---|---|
wParam | 픽셀당 새 비트 |
LOWORD(lParam) | 새 픽셀 너비 |
HIWORD(lParam) | 새 픽셀 높이 |
DPI 가상화
이 API는 DPI 가상화에 참여하지 않습니다. 지정된 입력은 항상 물리적 픽셀을 기준으로 하며 호출 컨텍스트와 관련이 없습니다.참고
winuser.h 헤더는 CHANGEDisplaySettings를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | winuser.h(Windows.h 포함) |
라이브러리 | User32.lib |
DLL | User32.dll |
API 세트 | ext-ms-win-ntuser-sysparams-ext-l1-1-1(Windows 10 버전 10.0.14393에 도입됨) |