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

Weitere Informationen

ChoosePixelFormat

DescribePixelFormat

GetPixelFormat

OpenGL unter Windows

Windows-Funktionen