IDirectDraw7::SetCooperativeLevel-Methode (ddraw.h)
Bestimmt das Verhalten der Anwendung auf oberster Ebene.
Syntax
HRESULT SetCooperativeLevel(
[in] HWND unnamedParam1,
[in] DWORD unnamedParam2
);
Parameter
[in] unnamedParam1
Fensterhandle, das für die Anwendung verwendet wird. Legen Sie das Fensterhandle der aufrufenden Anwendung auf oberster Ebene fest (kein Handle für untergeordnete Fenster, die vom Fenster der obersten Ebene erstellt wurden). Dieser Parameter kann NULL sein, wenn das DDSCL_NORMAL-Flag im dwFlags-Parameter angegeben ist.
[in] unnamedParam2
Dieser Wert besteht aus mindestens einem der folgenden Flags:
DDSCL_ALLOWMODEX
Ermöglicht die Verwendung von Anzeigemodi im Modus X. Dieses Flag kann nur verwendet werden, wenn die DDSCL_EXCLUSIVE- und DDSCL_FULLSCREEN-Flags vorhanden sind.
DDSCL_ALLOWREBOOT
Lässt STRG+ALT+ENTF im exklusiven Modus (Vollbildmodus) funktionieren.
DDSCL_CREATEDEVICEWINDOW
Dieses Flag wird nur in Windows 98 und Windows 2000 unterstützt. Gibt an, dass DirectDraw ein Standardgerätefenster für dieses DirectDraw-Objekt erstellt und verwaltet.
DDSCL_EXCLUSIVE
Fordert die exklusive Ebene an. Dieses Flag muss mit dem DDSCL_FULLSCREEN-Flag verwendet werden.
DDSCL_FPUPRESERVE
Die aufrufende Anwendung kümmert sich um den FPU-Zustand und möchte nicht, dass Direct3D ihn auf für die Anwendung sichtbare Weise ändert. In diesem Modus speichert Und stellt Direct3D den FPU-Zustand jedes Mal wieder her, wenn der FPU-Zustand geändert werden muss.
DDSCL_FPUSETUP
Die aufrufende Anwendung behält wahrscheinlich die FPU für eine optimale Direct3D-Leistung bei (einzelne Genauigkeit und Ausnahmen deaktiviert), sodass Direct3D die FPU nicht jedes Mal explizit festlegen muss. Dies ist die Standardeinstellung.
DDSCL_FULLSCREEN
Der Besitzer des exklusiven Modus ist für die gesamte primäre Oberfläche verantwortlich. Der GDI kann ignoriert werden. Dieses Flag muss mit dem DDSCL_EXCLUSIVE-Flag verwendet werden.
DDSCL_MULTITHREADED
Fordert multithreadsicheres DirectDraw-Verhalten an. Dies führt dazu, dass Direct3D den globalen kritischen Abschnitt häufiger übernimmt.
DDSCL_NORMAL
Die Anwendung funktioniert wie eine typische Windows-Anwendung. Dieses Flag kann nicht mit den DDSCL_ALLOWMODEX-, DDSCL_EXCLUSIVE- oder DDSCL_FULLSCREEN-Flags verwendet werden.
DDSCL_NOWINDOWCHANGES
DirectDraw darf das Anwendungsfenster bei der Aktivierung nicht minimieren oder wiederherstellen.
DDSCL_SETDEVICEWINDOW
Dieses Flag wird nur in Windows 98 und Windows 2000 unterstützt. Gibt an, dass der hWnd-Parameter das Fensterhandle des Gerätefensters für dieses DirectDraw-Objekt ist. Dieses Flag kann nicht mit dem DDSCL_SETFOCUSWINDOW-Flag verwendet werden.
DDSCL_SETFOCUSWINDOW
Dieses Flag wird nur in Windows 98 und Windows 2000 unterstützt. Gibt an, dass der hWnd-Parameter das Fensterhandle des Fokusfensters für dieses DirectDraw-Objekt ist. Dieses Flag kann nicht mit dem DDSCL_SETDEVICEWINDOW-Flag verwendet werden.
Rückgabewert
Wenn die Methode erfolgreich ist, wird der Rückgabewert DD_OK.
Wenn ein Fehler auftritt, kann die Methode einen der folgenden Fehlerwerte zurückgeben:
- DDERR_EXCLUSIVEMODEALREADYSET
- DDERR_HWNDALREADYSET
- DDERR_HWNDSUBCLASSED
- DDERR_INVALIDOBJECT
- DDERR_INVALIDPARAMS
- DDERR_OUTOFMEMORY
Hinweise
Diese Methode muss von demselben Thread aufgerufen werden, der das Anwendungsfenster erstellt hat.
Eine Anwendung muss entweder das DDSCL_EXCLUSIVE- oder das DDSCL_NORMAL-Flag festlegen.
Das flag DDSCL_EXCLUSIVE muss so festgelegt werden, dass Funktionen aufgerufen werden, die sich negativ auf die Leistung anderer Anwendungen auswirken können.
Die Interaktion zwischen dieser Methode und der IDirectDraw7::SetDisplayMode-Methode unterscheidet sich von ihren IDirectDraw-Gegenstücken.
Wenn Sie Microsoft Foundation Classes (MFC) verwenden, muss das an diese Methode übergebene Fensterhandle das Fensterfenster der Anwendung auf oberster Ebene und nicht ein abgeleitetes untergeordnetes Fenster identifizieren. Um das Fensterhandle der obersten Ebene Ihrer MFC-Anwendung abzurufen, können Sie den folgenden Code verwenden:
HWND hwndTop = AfxGetMainWnd()->GetSafeHwnd();
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Windows |
Kopfzeile | ddraw.h |
Bibliothek | Ddraw.lib |
DLL | Ddraw.dll |