Partager via


Fonction SetPixelFormat (wingdi.h)

La fonction SetPixelFormat définit le format de pixel du contexte d’appareil spécifié au format spécifié par l’index iPixelFormat .

Syntaxe

BOOL SetPixelFormat(
  HDC                         hdc,
  int                         format,
  const PIXELFORMATDESCRIPTOR *ppfd
);

Paramètres

hdc

Spécifie le contexte d’appareil dont la fonction tente de définir le format de pixel.

format

Index qui identifie le format de pixel à définir. Les différents formats de pixels pris en charge par un contexte d’appareil sont identifiés par des index de base unique.

ppfd

Pointeur vers une structure PIXELFORMATDESCRIPTOR qui contient la spécification de format de pixel logique. Le composant de métafichier du système utilise cette structure pour enregistrer la spécification de format de pixel logique. La structure n’a aucun autre effet sur le comportement de la fonction SetPixelFormat .

Valeur retournée

Si la fonction réussit, la valeur de retour est TRUE.

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

Remarques

Si hdc fait référence à une fenêtre, l’appel de la fonction SetPixelFormat modifie également le format de pixel de la fenêtre. La définition du format de pixels d’une fenêtre plusieurs fois peut entraîner des complications importantes pour le Gestionnaire de fenêtres et pour les applications multithread, ce qui n’est pas autorisé. Une application ne peut définir le format de pixels d’une fenêtre qu’une seule fois. Une fois le format de pixels d’une fenêtre défini, il ne peut pas être modifié.

Vous devez sélectionner un format de pixel dans le contexte de l’appareil avant d’appeler la fonction wglCreateContext . La fonction wglCreateContext crée un contexte de rendu pour le dessin sur l’appareil au format de pixels sélectionné du contexte de l’appareil.

Une fenêtre OpenGL a son propre format de pixels. Pour cette raison, seuls les contextes d’appareil récupérés pour la zone cliente d’une fenêtre OpenGL sont autorisés à dessiner dans la fenêtre. Par conséquent, une fenêtre OpenGL doit être créée avec les styles WS_CLIPCHILDREN et WS_CLIPSIBLINGS. En outre, l’attribut de classe window ne doit pas inclure le style CS_PARENTDC.

Exemples

L’exemple de code suivant montre l’utilisation de SetPixelFormat .

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

Configuration requise

Condition requise Valeur
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

ChoosePixelFormat

DescribePixelFormat

GetPixelFormat

OpenGL sur Windows

Fonctions Windows