Share via


Función SetPixelFormat (wingdi.h)

La función SetPixelFormat establece el formato de píxel del contexto de dispositivo especificado en el formato especificado por el índice iPixelFormat .

Sintaxis

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

Parámetros

hdc

Especifica el contexto del dispositivo cuyo formato de píxel intenta establecer la función.

format

Índice que identifica el formato de píxel que se va a establecer. Los distintos formatos de píxeles admitidos por un contexto de dispositivo se identifican mediante índices basados en uno.

ppfd

Puntero a una estructura PIXELFORMATDESCRIPTOR que contiene la especificación de formato de píxel lógico. El componente de metarchivo del sistema usa esta estructura para registrar la especificación de formato de píxel lógico. La estructura no tiene ningún otro efecto sobre el comportamiento de la función SetPixelFormat .

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es TRUE.

Si se produce un error en la función, el valor devuelto es FALSE. Para obtener información de error extendida, llame a GetLastError.

Comentarios

Si hdc hace referencia a una ventana, al llamar a la función SetPixelFormat también cambia el formato de píxel de la ventana. Establecer el formato de píxel de una ventana más de una vez puede dar lugar a complicaciones significativas para el Administrador de ventanas y para las aplicaciones multithread, por lo que no se permite. Una aplicación solo puede establecer el formato de píxel de una ventana una vez. Una vez establecido el formato de píxel de una ventana, no se puede cambiar.

Debe seleccionar un formato de píxel en el contexto del dispositivo antes de llamar a la función wglCreateContext . La función wglCreateContext crea un contexto de representación para dibujar en el dispositivo en el formato de píxel seleccionado del contexto del dispositivo.

Una ventana de OpenGL tiene su propio formato de píxel. Por este motivo, solo los contextos de dispositivo recuperados para el área cliente de una ventana openGL pueden dibujarse en la ventana. Como resultado, se debe crear una ventana de OpenGL con los estilos WS_CLIPCHILDREN y WS_CLIPSIBLINGS. Además, el atributo de clase de ventana no debe incluir el estilo CS_PARENTDC.

Ejemplos

En el ejemplo de código siguiente se muestra el uso 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);

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado wingdi.h
Library Gdi32.lib
Archivo DLL Gdi32.dll

Consulte también

ChoosePixelFormat

DescribePixelFormat

GetPixelFormat

OpenGL en Windows

Funciones de Windows