다음을 통해 공유


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

추가 정보

IDirectDraw7