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 |