SetPixelFormat-Funktion (wingdi.h)
Die SetPixelFormat-Funktion legt das Pixelformat des angegebenen Gerätekontexts auf das vom iPixelFormat-Index angegebene Format fest.
Syntax
BOOL SetPixelFormat(
HDC hdc,
int format,
const PIXELFORMATDESCRIPTOR *ppfd
);
Parameter
hdc
Gibt den Gerätekontext an, dessen Pixelformat die Funktion festlegen möchte.
format
Index, der das festzulegende Pixelformat angibt. Die verschiedenen Pixelformate, die von einem Gerätekontext unterstützt werden, werden durch einbasierte Indizes identifiziert.
ppfd
Zeiger auf eine PIXELFORMATDESCRIPTOR-Struktur , die die Spezifikation des logischen Pixelformats enthält. Die Metadateikomponente des Systems verwendet diese Struktur, um die Spezifikation des logischen Pixelformats aufzuzeichnen. Die Struktur hat keine weiteren Auswirkungen auf das Verhalten der SetPixelFormat-Funktion .
Rückgabewert
Wenn die Funktion erfolgreich ist, ist der Rückgabewert TRUE.
Wenn die Funktion fehlschlägt, ist der Rückgabewert FALSE. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.
Hinweise
Wenn hdc auf ein Fenster verweist, ändert das Aufrufen der SetPixelFormat-Funktion auch das Pixelformat des Fensters. Wenn Sie das Pixelformat eines Fensters mehrmals festlegen, kann dies zu erheblichen Komplikationen für den Fenster-Manager und für Multithreadanwendungen führen, sodass dies nicht zulässig ist. Eine Anwendung kann das Pixelformat eines Fensters nur einmal festlegen. Sobald das Pixelformat eines Fensters festgelegt ist, kann es nicht mehr geändert werden.
Sie sollten ein Pixelformat im Gerätekontext auswählen, bevor Sie die Funktion wglCreateContext aufrufen. Die wglCreateContext-Funktion erstellt einen Renderingkontext zum Zeichnen auf dem Gerät im ausgewählten Pixelformat des Gerätekontexts.
Ein OpenGL-Fenster hat ein eigenes Pixelformat. Aus diesem Grund dürfen nur Gerätekontexte, die für den Clientbereich eines OpenGL-Fensters abgerufen werden, in das Fenster zeichnen. Daher sollte ein OpenGL-Fenster mit den formaten WS_CLIPCHILDREN und WS_CLIPSIBLINGS erstellt werden. Darüber hinaus sollte das Attribut der Fensterklasse nicht die CS_PARENTDC Format enthalten.
Beispiele
Im folgenden Codebeispiel wird die Verwendung von SetPixelFormat veranschaulicht.
PIXELFORMATDESCRIPTOR pfd = {
sizeof(PIXELFORMATDESCRIPTOR), // size of this pfd
1, // version number
PFD_DRAW_TO_WINDOW | // support window
PFD_SUPPORT_OPENGL | // support OpenGL
PFD_DOUBLEBUFFER, // double buffered
PFD_TYPE_RGBA, // RGBA type
24, // 24-bit color depth
0, 0, 0, 0, 0, 0, // color bits ignored
0, // no alpha buffer
0, // shift bit ignored
0, // no accumulation buffer
0, 0, 0, 0, // accum bits ignored
32, // 32-bit z-buffer
0, // no stencil buffer
0, // no auxiliary buffer
PFD_MAIN_PLANE, // main layer
0, // reserved
0, 0, 0 // layer masks ignored
};
HDC hdc;
int iPixelFormat;
// get the best available match of pixel format for the device context
iPixelFormat = ChoosePixelFormat(hdc, &pfd);
// make that the pixel format of the device context
SetPixelFormat(hdc, iPixelFormat, &pfd);
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | wingdi.h |
Bibliothek | Gdi32.lib |
DLL | Gdi32.dll |