Freigeben über


ChoosePixelFormat-Funktion (wingdi.h)

Die ChoosePixelFormat-Funktion versucht, ein geeignetes Pixelformat, das von einem Gerätekontext unterstützt wird, einer bestimmten Pixelformatspezifikation zuzuordnen.

Syntax

int ChoosePixelFormat(
  HDC                         hdc,
  const PIXELFORMATDESCRIPTOR *ppfd
);

Parameter

hdc

Gibt den Gerätekontext an, den die Funktion untersucht, um die beste Übereinstimmung für den Pixelformatdeskriptor zu ermitteln, auf den ppfd verweist.

ppfd

Zeiger auf eine PIXELFORMATDESCRIPTOR-Struktur , die das angeforderte Pixelformat angibt. In diesem Kontext werden die Elemente der PIXELFORMATDESCRIPTOR-Struktur , auf die ppfd zeigt, wie folgt verwendet:

nSize Gibt die Größe der PIXELFORMATDESCRIPTOR-Datenstruktur an. Legen Sie dieses Element auf fest sizeof(PIXELFORMATDESCRIPTOR).
nVersion Gibt die Versionsnummer der PIXELFORMATDESCRIPTOR-Datenstruktur an. Legen Sie diesen Member auf 1 fest.
dwFlags Eine Reihe von Bitflags, die Eigenschaften des Pixelpuffers angeben. Sie können die folgenden Bitflagskonstanten mit bitweise-OR kombinieren. Wenn eines der folgenden Flags festgelegt ist, versucht die ChoosePixelFormat-Funktion , Pixelformate abzugleichen, für die auch dieses Flag oder diese Flags festgelegt sind. Andernfalls ignoriert ChoosePixelFormat dieses Flag in den Pixelformaten: PFD_DRAW_TO_WINDOW, PFD_DRAW_TO_BITMAP, PFD_SUPPORT_GDI, PFD_SUPPORT_OPENGL Wenn eines der folgenden Flags festgelegt ist, versucht ChoosePixelFormat, Pixelformate abzugleichen, für die auch dieses Flag oder diese Flags festgelegt sind. Andernfalls versucht sie, Pixelformate ohne diesen Flagsatz abzugleichen: PFD_DOUBLEBUFFER PFD_STEREO Wenn das folgende Flag festgelegt ist, ignoriert die Funktion das PFD_DOUBLEBUFFER-Flag in den Pixelformaten: PFD_DOUBLEBUFFER_DONTCARE Wenn das folgende Flag festgelegt ist, ignoriert die Funktion das PFD_STEREO-Flag in den Pixelformaten: PFD_STEREO_DONTCARE
iPixelType Gibt den Typ des Pixelformats für die Zu berücksichtigende Funktion an: PFD_TYPE_RGBA, PFD_TYPE_COLORINDEX
cColorBits Null oder höher.
cRedBits Wird nicht verwendet.
cRedShift Wird nicht verwendet.
cGreenBits Wird nicht verwendet.
cGreenShift Wird nicht verwendet.
cBlueBits Wird nicht verwendet.
cBlueShift Wird nicht verwendet.
cAlphaBits Null oder höher.
cAlphaShift Wird nicht verwendet.
cAccumBits Null oder höher.
cAccumRedBits Wird nicht verwendet.
cAccumGreenBits Wird nicht verwendet.
cAccumBlueBits Wird nicht verwendet.
cAccumAlphaBits Wird nicht verwendet.
cDepthBits Null oder höher.
cStencilBits Null oder höher.
cAuxBuffers Null oder höher.
iLayerType Gibt einen der folgenden Ebenentypwerte an: PFD_MAIN_PLANE, PFD_OVERLAY_PLANE, PFD_UNDERLAY_PLANE
bReserved Wird nicht verwendet.
dwLayerMask Wird nicht verwendet.
dwVisibleMask Wird nicht verwendet.
dwDamageMask Wird nicht verwendet.
 

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ein Pixelformatindex (einsbasiert), der dem angegebenen Pixelformatdeskriptor am nächsten entspricht.

Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Hinweise

Sie müssen sicherstellen, dass das Pixelformat, das von der ChoosePixelFormat-Funktion übereinstimmt, Ihre Anforderungen erfüllt. Wenn Sie beispielsweise ein Pixelformat mit einem 24-Bit-RGB-Farbpuffer anfordern, der Gerätekontext jedoch nur 8-Bit-RGB-Farbpuffer bietet, gibt die Funktion ein Pixelformat mit einem 8-Bit-RGB-Farbpuffer zurück.

Beispiele

Das folgende Codebeispiel zeigt, wie Sie ChoosePixelFormat verwenden, um einem angegebenen Pixelformat zu entsprechen.

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; 
 
iPixelFormat = ChoosePixelFormat(hdc, &pfd);

Anforderungen

   
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

DescribePixelFormat

GetPixelFormat

OpenGL unter Windows

SetPixelFormat

Windows-Funktionen