Compartilhar via


Método IDirectDraw7::SetCooperativeLevel (ddraw.h)

Determina o comportamento de nível superior do aplicativo.

Sintaxe

HRESULT SetCooperativeLevel(
  [in] HWND  unnamedParam1,
  [in] DWORD unnamedParam2
);

Parâmetros

[in] unnamedParam1

Identificador de janela usado para o aplicativo. Defina como o identificador de janela de nível superior do aplicativo de chamada (não é um identificador para janelas filho criadas pela janela de nível superior). Esse parâmetro pode ser NULL quando o sinalizador DDSCL_NORMAL é especificado no parâmetro dwFlags .

[in] unnamedParam2

Esse valor consiste em um ou mais dos seguintes sinalizadores:

DDSCL_ALLOWMODEX

Permite o uso de modos de exibição do Modo X. Esse sinalizador só poderá ser usado se os sinalizadores DDSCL_EXCLUSIVE e DDSCL_FULLSCREEN estiverem presentes.

DDSCL_ALLOWREBOOT

Permite que CTRL+ALT+DEL funcione enquanto estiver no modo exclusivo (tela inteira).

DDSCL_CREATEDEVICEWINDOW

Esse sinalizador tem suporte apenas no Windows 98 e no Windows 2000. Indica que o DirectDraw criará e gerenciará uma janela de dispositivo padrão para este objeto DirectDraw.

DDSCL_EXCLUSIVE

Solicita o nível exclusivo. Esse sinalizador deve ser usado com o sinalizador DDSCL_FULLSCREEN.

DDSCL_FPUPRESERVE

O aplicativo de chamada se preocupa com o estado da FPU e não deseja que o Direct3D o modifique de maneiras visíveis para o aplicativo. Nesse modo, o Direct3D salva e restaura o estado FPU sempre que precisa modificar o estado da FPU.

DDSCL_FPUSETUP

É provável que o aplicativo de chamada mantenha a FPU configurada para o desempenho ideal do Direct3D (precisão única e exceções desabilitadas), portanto, o Direct3D não precisa definir explicitamente a FPU todas as vezes. Esse é o valor padrão.

DDSCL_FULLSCREEN

O proprietário do modo exclusivo é responsável por toda a superfície primária. O GDI pode ser ignorado. Esse sinalizador deve ser usado com o sinalizador DDSCL_EXCLUSIVE.

DDSCL_MULTITHREADED

Solicita o comportamento do DirectDraw multithread-safe. Isso faz com que o Direct3D tome a seção crítica global com mais frequência.

DDSCL_NORMAL

O aplicativo funciona como um aplicativo típico do Windows. Esse sinalizador não pode ser usado com os sinalizadores DDSCL_ALLOWMODEX, DDSCL_EXCLUSIVE ou DDSCL_FULLSCREEN.

DDSCL_NOWINDOWCHANGES

O DirectDraw não tem permissão para minimizar ou restaurar a janela do aplicativo na ativação.

DDSCL_SETDEVICEWINDOW

Esse sinalizador tem suporte apenas no Windows 98 e no Windows 2000. Indica que o parâmetro hWnd é o identificador de janela da janela do dispositivo para este objeto DirectDraw. Esse sinalizador não pode ser usado com o sinalizador DDSCL_SETFOCUSWINDOW.

DDSCL_SETFOCUSWINDOW

Esse sinalizador tem suporte apenas no Windows 98 e no Windows 2000. Indica que o parâmetro hWnd é o identificador de janela da janela de foco para este objeto DirectDraw. Esse sinalizador não pode ser usado com o sinalizador DDSCL_SETDEVICEWINDOW.

Retornar valor

Se o método for bem-sucedido, o valor retornado será DD_OK.

Se falhar, o método poderá retornar um dos seguintes valores de erro:

  • DDERR_EXCLUSIVEMODEALREADYSET
  • DDERR_HWNDALREADYSET
  • DDERR_HWNDSUBCLASSED
  • DDERR_INVALIDOBJECT
  • DDERR_INVALIDPARAMS
  • DDERR_OUTOFMEMORY

Comentários

Esse método deve ser chamado pelo mesmo thread que criou a janela do aplicativo.

Um aplicativo deve definir a DDSCL_EXCLUSIVE ou o sinalizador DDSCL_NORMAL.

O sinalizador DDSCL_EXCLUSIVE deve ser definido para chamar funções que podem afetar negativamente o desempenho de outros aplicativos.

A interação entre esse método e o método IDirectDraw7::SetDisplayMode difere de seus equivalentes IDirectDraw.

Se você usar o MFC (Microsoft Foundation Classes), o identificador de janela passado para esse método deverá identificar a janela de nível superior do aplicativo, não uma janela filho derivada. Para recuperar o identificador de janela de nível superior do aplicativo MFC, você pode usar o seguinte código:


HWND hwndTop = AfxGetMainWnd()->GetSafeHwnd();

Requisitos

Requisito Valor
Plataforma de Destino Windows
Cabeçalho ddraw.h
Biblioteca Ddraw.lib
DLL Ddraw.dll

Confira também

IDirectDraw7