IDirectDraw7::SetCooperativeLevel 메서드(ddraw.h)
애플리케이션의 최상위 동작을 결정합니다.
구문
HRESULT SetCooperativeLevel(
[in] HWND unnamedParam1,
[in] DWORD unnamedParam2
);
매개 변수
[in] unnamedParam1
애플리케이션에 사용되는 창 핸들입니다. 를 호출하는 애플리케이션의 최상위 창 핸들(최상위 창에서 만든 자식 창에 대한 핸들이 아님)으로 설정합니다. dwFlags 매개 변수에 DDSCL_NORMAL 플래그가 지정된 경우 이 매개 변수는 NULL일 수 있습니다.
[in] unnamedParam2
이 값은 다음 플래그 중 하나 이상으로 구성됩니다.
DDSCL_ALLOWMODEX
모드 X 표시 모드를 사용할 수 있습니다. 이 플래그는 DDSCL_EXCLUSIVE 및 DDSCL_FULLSCREEN 플래그가 있는 경우에만 사용할 수 있습니다.
DDSCL_ALLOWREBOOT
Ctrl+Alt+DEL이 배타적(전체 화면) 모드에서 작동하도록 허용합니다.
DDSCL_CREATEDEVICEWINDOW
이 플래그는 Windows 98 및 Windows 2000에서만 지원됩니다. DirectDraw가 이 DirectDraw 개체에 대한 기본 디바이스 창을 만들고 관리한다는 것을 나타냅니다.
DDSCL_EXCLUSIVE
배타적 수준을 요청합니다. 이 플래그는 DDSCL_FULLSCREEN 플래그와 함께 사용해야 합니다.
DDSCL_FPUPRESERVE
호출 애플리케이션은 FPU 상태를 중요하게 생각하고 Direct3D가 애플리케이션에 표시되는 방식으로 수정하지 않도록 합니다. 이 모드에서 Direct3D는 FPU 상태를 수정해야 할 때마다 FPU 상태를 저장하고 복원합니다.
DDSCL_FPUSETUP
호출 애플리케이션은 최적의 Direct3D 성능(단정밀도 및 예외 사용 안 함)을 위해 FPU를 계속 설정할 수 있으므로 Direct3D는 매번 FPU를 명시적으로 설정할 필요가 없습니다. 이 설정이 기본 상태입니다.
DDSCL_FULLSCREEN
단독 모드 소유자는 전체 기본 표면을 담당합니다. GDI는 무시할 수 있습니다. 이 플래그는 DDSCL_EXCLUSIVE 플래그와 함께 사용해야 합니다.
DDSCL_MULTITHREADED
다중 스레드로부터 안전한 DirectDraw 동작을 요청합니다. 이로 인해 Direct3D는 전역 중요 섹션을 더 자주 사용합니다.
DDSCL_NORMAL
애플리케이션은 일반적인 Windows 애플리케이션으로 작동합니다. 이 플래그는 DDSCL_ALLOWMODEX, DDSCL_EXCLUSIVE 또는 DDSCL_FULLSCREEN 플래그와 함께 사용할 수 없습니다.
DDSCL_NOWINDOWCHANGES
DirectDraw는 활성화할 때 애플리케이션 창을 최소화하거나 복원할 수 없습니다.
DDSCL_SETDEVICEWINDOW
이 플래그는 Windows 98 및 Windows 2000에서만 지원됩니다. hWnd 매개 변수가 이 DirectDraw 개체에 대한 디바이스 창의 창 핸들임을 나타냅니다. 이 플래그는 DDSCL_SETFOCUSWINDOW 플래그와 함께 사용할 수 없습니다.
DDSCL_SETFOCUSWINDOW
이 플래그는 Windows 98 및 Windows 2000에서만 지원됩니다. hWnd 매개 변수가 이 DirectDraw 개체에 대한 포커스 창의 창 핸들임을 나타냅니다. 이 플래그는 DDSCL_SETDEVICEWINDOW 플래그와 함께 사용할 수 없습니다.
반환 값
메서드가 성공하면 반환 값이 DD_OK.
실패하면 메서드는 다음 오류 값 중 하나를 반환할 수 있습니다.
- DDERR_EXCLUSIVEMODEALREADYSET
- DDERR_HWNDALREADYSET
- DDERR_HWNDSUBCLASSED
- DDERR_INVALIDOBJECT
- DDERR_INVALIDPARAMS
- DDERR_OUTOFMEMORY
설명
이 메서드는 애플리케이션 창을 만든 동일한 스레드에서 호출해야 합니다.
애플리케이션은 DDSCL_EXCLUSIVE 또는 DDSCL_NORMAL 플래그를 설정해야 합니다.
DDSCL_EXCLUSIVE 플래그는 다른 애플리케이션의 성능에 부정적인 영향을 줄 수 있는 함수를 호출하도록 설정해야 합니다.
이 메서드와 IDirectDraw7::SetDisplayMode 메서드 간의 상호 작용은 해당 IDirectDraw 메서드와 다릅니다.
MFC(Microsoft Foundation Classes)를 사용하는 경우 이 메서드에 전달된 창 핸들은 파생 자식 창이 아닌 애플리케이션의 최상위 창을 식별해야 합니다. MFC 애플리케이션의 최상위 창 핸들을 검색하려면 다음 코드를 사용할 수 있습니다.
HWND hwndTop = AfxGetMainWnd()->GetSafeHwnd();
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | Windows |
헤더 | ddraw.h |
라이브러리 | Ddraw.lib |
DLL | Ddraw.dll |