Partager via


Fonction ChoosePixelFormat (wingdi.h)

La fonction ChoosePixelFormat tente de faire correspondre un format de pixel approprié pris en charge par un contexte d’appareil à une spécification de format de pixel donnée.

Syntaxe

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

Paramètres

hdc

Spécifie le contexte d’appareil que la fonction examine pour déterminer la meilleure correspondance pour le descripteur de format de pixel pointé par ppfd.

ppfd

Pointeur vers une structure PIXELFORMATDESCRIPTOR qui spécifie le format de pixel demandé. Dans ce contexte, les membres de la structure PIXELFORMATDESCRIPTOR que ppfd pointe sont utilisés comme suit :

nSize Spécifie la taille de la structure de données PIXELFORMATDESCRIPTOR . Définissez ce membre sur sizeof(PIXELFORMATDESCRIPTOR).
nVersion Spécifie le numéro de version de la structure de données PIXELFORMATDESCRIPTOR . Définissez ce membre sur 1.
dwFlags Ensemble d’indicateurs de bits qui spécifient les propriétés de la mémoire tampon de pixels. Vous pouvez combiner les constantes d’indicateur de bits suivantes à l’aide du bit-OR. Si l’un des indicateurs suivants est défini, la fonction ChoosePixelFormat tente de faire correspondre les formats de pixels qui ont également cet indicateur ou ces indicateurs définis. Sinon, ChoosePixelFormat ignore cet indicateur dans les formats de pixels : PFD_DRAW_TO_WINDOW, PFD_DRAW_TO_BITMAP, PFD_SUPPORT_GDI, PFD_SUPPORT_OPENGL Si l’un des indicateurs suivants est défini, ChoosePixelFormat tente de faire correspondre les formats de pixels dont l’indicateur ou les indicateurs sont également définis. Sinon, elle tente de faire correspondre les formats de pixels sans ce jeu d’indicateurs : PFD_DOUBLEBUFFER PFD_STEREO Si l’indicateur suivant est défini, la fonction ignore l’indicateur PFD_DOUBLEBUFFER dans les formats de pixels : PFD_DOUBLEBUFFER_DONTCARE Si l’indicateur suivant est défini, la fonction ignore l’indicateur PFD_STEREO dans les formats de pixels : PFD_STEREO_DONTCARE
iPixelType Spécifie le type de format de pixels pour la fonction à prendre en compte : PFD_TYPE_RGBA, PFD_TYPE_COLORINDEX
cColorBits Zéro ou supérieur.
cRedBits Non utilisé.
cRedShift Non utilisé.
cGreenBits Non utilisé.
cGreenShift Non utilisé.
cBlueBits Non utilisé.
cBlueShift Non utilisé.
cAlphaBits Zéro ou supérieur.
cAlphaShift Non utilisé.
cAccumBits Zéro ou supérieur.
cAccumRedBits Non utilisé.
cAccumGreenBits Non utilisé.
cAccumBlueBits Non utilisé.
cAccumAlphaBits Non utilisé.
cDepthBits Zéro ou supérieur.
cStencilBits Zéro ou supérieur.
cAuxBuffers Zéro ou supérieur.
iLayerType Spécifie l’une des valeurs de type de couche suivantes : PFD_MAIN_PLANE, PFD_OVERLAY_PLANE, PFD_UNDERLAY_PLANE
bReserved Non utilisé.
dwLayerMask Non utilisé.
dwVisibleMask Non utilisé.
dwDamageMask Non utilisé.
 

Valeur retournée

Si la fonction réussit, la valeur de retour est un index de format de pixel (base un) qui correspond le plus au descripteur de format de pixel donné.

Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.

Remarques

Vous devez vous assurer que le format de pixel correspondant à la fonction ChoosePixelFormat répond à vos besoins. Par exemple, si vous demandez un format de pixel avec une mémoire tampon de couleur RVB 24 bits, mais que le contexte de l’appareil offre uniquement des tampons de couleurs RVB 8 bits, la fonction retourne un format de pixel avec une mémoire tampon de couleurs RVB 8 bits.

Exemples

L’exemple de code suivant montre comment utiliser ChoosePixelFormat pour correspondre à un format de pixel spécifié.

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);

Configuration requise

   
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête wingdi.h
Bibliothèque Gdi32.lib
DLL Gdi32.dll

Voir aussi

DescribePixelFormat

GetPixelFormat

OpenGL sur Windows

SetPixelFormat

Fonctions Windows