Condividi tramite


Funzione SetPixelFormat (wingdi.h)

La funzione SetPixelFormat imposta il formato pixel del contesto di dispositivo specificato sul formato specificato dall'indice iPixelFormat .

Sintassi

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

Parametri

hdc

Specifica il contesto del dispositivo il cui formato pixel tenta di impostare la funzione.

format

Indice che identifica il formato pixel da impostare. I vari formati di pixel supportati da un contesto di dispositivo sono identificati da indici basati su un'unica.

ppfd

Puntatore a una struttura PIXELFORMATDESCRIPTOR che contiene la specifica del formato pixel logico. Il componente metafile del sistema usa questa struttura per registrare la specifica del formato pixel logico. La struttura non ha alcun altro effetto sul comportamento della funzione SetPixelFormat .

Valore restituito

Se la funzione ha esito positivo, il valore restituito è TRUE.

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

Commenti

Se hdc fa riferimento a una finestra, la chiamata alla funzione SetPixelFormat modifica anche il formato pixel della finestra. L'impostazione del formato pixel di una finestra più volte può causare complicazioni significative per Window Manager e per le applicazioni multithread, quindi non è consentito. Un'applicazione può impostare il formato pixel di una finestra una sola volta. Una volta impostato il formato pixel di una finestra, non può essere modificato.

È necessario selezionare un formato pixel nel contesto di dispositivo prima di chiamare la funzione wglCreateContext . La funzione wglCreateContext crea un contesto di rendering per il disegno sul dispositivo nel formato pixel selezionato del contesto di dispositivo.

Una finestra OpenGL ha un proprio formato pixel. Per questo motivo, solo i contesti di dispositivo recuperati per l'area client di una finestra OpenGL possono disegnare nella finestra. Di conseguenza, deve essere creata una finestra OpenGL con gli stili WS_CLIPCHILDREN e WS_CLIPSIBLINGS. Inoltre, l'attributo della classe window non deve includere lo stile CS_PARENTDC.

Esempio

L'esempio di codice seguente mostra l'utilizzo di 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);

Requisiti

Requisito Valore
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

ChoosePixelFormat

DescribePixelFormat

GetPixelFormat

OpenGL in Windows

Funzioni di Windows