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 |