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 |