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 |