Condividi tramite


Funzione ChoosePixelFormat (wingdi.h)

La funzione ChoosePixelFormat tenta di corrispondere a un formato pixel appropriato supportato da un contesto del dispositivo a una specifica specifica del formato pixel.

Sintassi

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

Parametri

hdc

Specifica il contesto del dispositivo esaminato dalla funzione per determinare la corrispondenza migliore per il descrittore di formato pixel a cui punta ppfd.

ppfd

Puntatore a una struttura PIXELFORMATDESCRIPTOR che specifica il formato pixel richiesto. In questo contesto, i membri della struttura PIXELFORMATDESCRIPTOR a cui ppfd punta vengono usati come segue:

nSize Specifica le dimensioni della struttura di dati PIXELFORMATDESCRIPTOR . Impostare questo membro su sizeof(PIXELFORMATDESCRIPTOR).
nVersion Specifica il numero di versione della struttura di dati PIXELFORMATDESCRIPTOR . Impostare questo membro su 1.
dwFlags Set di flag di bit che specificano le proprietà del buffer pixel. È possibile combinare le costanti del flag di bit seguenti usando bit-OR. Se vengono impostati uno dei flag seguenti, la funzione ChoosePixelFormat tenta di corrispondere ai formati pixel che hanno anche tale flag o flag impostati. In caso contrario, ChoosePixelFormat ignora il flag nei formati pixel: PFD_DRAW_TO_WINDOW, PFD_DRAW_TO_BITMAP, PFD_SUPPORT_GDI, PFD_SUPPORT_OPENGL Se sono impostati uno dei flag seguenti, ChoosePixelFormat tenta di corrispondere ai formati di pixel che hanno anche tale flag o flag impostati. In caso contrario, tenta di corrispondere ai formati pixel senza tale flag impostato: PFD_DOUBLEBUFFER PFD_STEREO Se è impostato il flag seguente, la funzione ignora il flag PFD_DOUBLEBUFFER nei formati pixel: PFD_DOUBLEBUFFER_DONTCARE Se il flag seguente è impostato, la funzione ignora il flag PFD_STEREO nei formati pixel: PFD_STEREO_DONTCARE
iPixelType Specifica il tipo di formato pixel da considerare per la funzione: PFD_TYPE_RGBA, PFD_TYPE_COLORINDEX
cColorBits Zero o maggiore.
cRedBits Non usato.
cRedShift Non usato.
cGreenBits Non usato.
cGreenShift Non usato.
cBlueBits Non usato.
cBlueShift Non usato.
cAlphaBits Zero o maggiore.
cAlphaShift Non usato.
cAccumBits Zero o maggiore.
cAccumRedBits Non usato.
cAccumGreenBits Non usato.
cAccumBlueBits Non usato.
cAccumAlphaBits Non usato.
cDepthBits Zero o maggiore.
cStencilBits Zero o maggiore.
cAuxBuffers Zero o maggiore.
iLayerType Specifica uno dei valori dei tipi di livello seguenti: PFD_MAIN_PLANE, PFD_OVERLAY_PLANE, PFD_UNDERLAY_PLANE
bReserved Non usato.
dwLayerMask Non usato.
dwVisibleMask Non usato.
dwDamageMask Non usato.
 

Valore restituito

Se la funzione ha esito positivo, il valore restituito è un indice di formato pixel (basato su uno) che corrisponde alla corrispondenza più vicina al descrittore del formato pixel specificato.

Se la funzione ha esito negativo, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.

Commenti

È necessario assicurarsi che il formato pixel corrispondente alla funzione ChoosePixelFormat soddisfi i requisiti. Ad esempio, se si richiede un formato pixel con un buffer di colore RGB a 24 bit, ma il contesto del dispositivo offre solo buffer di colore RGB a 8 bit, la funzione restituisce un formato pixel con un buffer di colore RGB a 8 bit.

Esempio

Nell'esempio di codice seguente viene illustrato come usare ChoosePixelFormat per corrispondere a un formato di pixel specificato.

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

Requisiti

   
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione wingdi.h
Libreria Gdi32.lib
DLL Gdi32.dll

Vedi anche

DescriverePixelFormat

GetPixelFormat

OpenGL in Windows

SetPixelFormat

Funzioni di Windows