Compartir a través de


Función ChoosePixelFormat (wingdi.h)

La función ChoosePixelFormat intenta coincidir con un formato de píxel adecuado admitido por un contexto de dispositivo con una especificación de formato de píxel determinada.

Sintaxis

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

Parámetros

hdc

Especifica el contexto del dispositivo al que examina la función para determinar la mejor coincidencia para el descriptor de formato de píxel al que apunta ppfd.

ppfd

Puntero a una estructura PIXELFORMATDESCRIPTOR que especifica el formato de píxel solicitado. En este contexto, los miembros de la estructura PIXELFORMATDESCRIPTOR a los que apunta ppfd se usan de la siguiente manera:

nSize Especifica el tamaño de la estructura de datos PIXELFORMATDESCRIPTOR . Establezca este miembro en sizeof(PIXELFORMATDESCRIPTOR).
nVersion Especifica el número de versión de la estructura de datos PIXELFORMATDESCRIPTOR . Establezca este miembro en 1.
dwFlags Conjunto de marcas de bits que especifican las propiedades del búfer de píxeles. Puede combinar las siguientes constantes de marca de bits mediante OR bit a bit. Si se establece alguna de las marcas siguientes, la función ChoosePixelFormat intenta coincidir con los formatos de píxeles que también tienen esa marca o marcas establecidas. De lo contrario, ChoosePixelFormat omite esa marca en formatos de píxeles: PFD_DRAW_TO_WINDOW, PFD_DRAW_TO_BITMAP, PFD_SUPPORT_GDI, PFD_SUPPORT_OPENGL Si se establece alguna de las marcas siguientes, ChoosePixelFormat intenta coincidir con los formatos de píxeles que también tienen esa marca o marcas establecidas. De lo contrario, intenta buscar coincidencias con formatos de píxel sin ese conjunto de marcas: PFD_DOUBLEBUFFER PFD_STEREO Si se establece la marca siguiente, la función omite la marca de PFD_DOUBLEBUFFER en los formatos de píxeles: PFD_DOUBLEBUFFER_DONTCARE Si se establece la marca siguiente, la función omite la marca PFD_STEREO en los formatos de píxel: PFD_STEREO_DONTCARE
iPixelType Especifica el tipo de formato de píxel para la función que se debe tener en cuenta: PFD_TYPE_RGBA, PFD_TYPE_COLORINDEX
cColorBits Cero o mayor.
cRedBits No se usa.
cRedShift No se usa.
cGreenBits No se usa.
cGreenShift No se usa.
cBlueBits No se usa.
cBlueShift No se usa.
cAlphaBits Cero o mayor.
cAlphaShift No se usa.
cAccumBits Cero o mayor.
cAccumRedBits No se usa.
cAccumGreenBits No se usa.
cAccumBlueBits No se usa.
cAccumAlphaBits No se usa.
cDepthBits Cero o mayor.
cStencilBits Cero o mayor.
cAuxBuffers Cero o mayor.
iLayerType Especifica uno de los siguientes valores de tipo de capa: PFD_MAIN_PLANE, PFD_OVERLAY_PLANE, PFD_UNDERLAY_PLANE
bReserved No se usa.
dwLayerMask No se usa.
dwVisibleMask No se usa.
dwDamageMask No se usa.
 

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es un índice de formato de píxel (basado en uno) que es la coincidencia más cercana al descriptor de formato de píxel determinado.

Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.

Comentarios

Debe asegurarse de que el formato de píxel coincidente con la función ChoosePixelFormat cumple sus requisitos. Por ejemplo, si solicita un formato de píxel con un búfer de color RGB de 24 bits, pero el contexto del dispositivo solo ofrece búferes de color RGB de 8 bits, la función devuelve un formato de píxel con un búfer de color RGB de 8 bits.

Ejemplos

En el ejemplo de código siguiente se muestra cómo usar ChoosePixelFormat para que coincida con un formato de píxel especificado.

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

Requisitos

   
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

DescribePixelFormat

GetPixelFormat

OpenGL en Windows

SetPixelFormat

Funciones de Windows