Função SetPixelFormat (wingdi.h)

A função SetPixelFormat define o formato de pixel do contexto do dispositivo especificado para o formato especificado pelo índice iPixelFormat .

Sintaxe

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

Parâmetros

hdc

Especifica o contexto do dispositivo cujo formato de pixel a função tenta definir.

format

Índice que identifica o formato de pixel a ser definido. Os vários formatos de pixel compatíveis com um contexto de dispositivo são identificados por índices baseados em um.

ppfd

Ponteiro para uma estrutura PIXELFORMATDESCRIPTOR que contém a especificação de formato de pixel lógico. O componente de metafile do sistema usa essa estrutura para registrar a especificação de formato de pixel lógico. A estrutura não tem outro efeito sobre o comportamento da função SetPixelFormat .

Retornar valor

Se a função for bem-sucedida, o valor retornado será TRUE.

Se a função falhar, o valor retornado será FALSE. Para obter informações de erro estendidas, chame GetLastError.

Comentários

Se o hdc fizer referência a uma janela, chamar a função SetPixelFormat também alterará o formato de pixel da janela. Definir o formato de pixel de uma janela mais de uma vez pode levar a complicações significativas para o Gerenciador de Janelas e para aplicativos multithread, para que não seja permitido. Um aplicativo só pode definir o formato de pixel de uma janela uma vez. Depois que o formato de pixel de uma janela é definido, ele não pode ser alterado.

Você deve selecionar um formato de pixel no contexto do dispositivo antes de chamar a função wglCreateContext . A função wglCreateContext cria um contexto de renderização para desenhar no dispositivo no formato de pixel selecionado do contexto do dispositivo.

Uma janela OpenGL tem seu próprio formato de pixel. Por isso, somente os contextos de dispositivo recuperados para a área de cliente de uma janela OpenGL têm permissão para desenhar na janela. Como resultado, uma janela OpenGL deve ser criada com os estilos WS_CLIPCHILDREN e WS_CLIPSIBLINGS. Além disso, o atributo de classe de janela não deve incluir o estilo CS_PARENTDC.

Exemplos

O exemplo de código a seguir mostra o 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 Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho wingdi.h
Biblioteca Gdi32.lib
DLL Gdi32.dll

Confira também

ChoosePixelFormat

DescribePixelFormat

GetPixelFormat

OpenGL no Windows

Funções do Windows