ChoosePixelFormat 함수(wingdi.h)

ChoosePixelFormat 함수는 디바이스 컨텍스트에서 지원하는 적절한 픽셀 형식을 지정된 픽셀 형식 사양과 일치시키려고 시도합니다.

구문

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

매개 변수

hdc

ppfd에서 가리키는 픽셀 형식 설명자에 가장 적합한 항목을 결정하기 위해 함수가 검사하는 디바이스 컨텍스트를 지정합니다.

ppfd

요청된 픽셀 형식을 지정하는 PIXELFORMATDESCRIPTOR 구조체에 대한 포인터입니다. 이 컨텍스트에서 ppfd가 가리키는 PIXELFORMATDESCRIPTOR 구조체의 멤버는 다음과 같이 사용됩니다.

nSize PIXELFORMATDESCRIPTOR 데이터 구조의 크기를 지정합니다. 이 멤버를 로 sizeof(PIXELFORMATDESCRIPTOR)설정합니다.
nVersion PIXELFORMATDESCRIPTOR 데이터 구조의 버전 번호를 지정합니다. 이 멤버를 1로 설정합니다.
dwFlags 픽셀 버퍼의 속성을 지정하는 비트 플래그 집합입니다. 비트 OR을 사용하여 다음 비트 플래그 상수를 결합할 수 있습니다. 다음 플래그 중 하나를 설정하면 ChoosePixelFormat 함수는 해당 플래그 또는 플래그가 설정된 픽셀 형식과 일치하려고 시도합니다. 그렇지 않으면 ChoosePixelFormat은 해당 플래그를 픽셀 형식으로 무시합니다. PFD_DRAW_TO_WINDOW, PFD_DRAW_TO_BITMAP, PFD_SUPPORT_GDI, PFD_SUPPORT_OPENGL 다음 플래그 중 하나를 설정하면 해당 플래그 또는 플래그가 설정된 픽셀 형식과 일치하려고 시도합니다. 그렇지 않으면 플래그가 설정되지 않은 픽셀 형식을 일치시키려고 시도합니다. PFD_DOUBLEBUFFER PFD_STEREO 다음 플래그가 설정되면 함수는 픽셀 형식의 PFD_DOUBLEBUFFER 플래그를 무시합니다. PFD_DOUBLEBUFFER_DONTCARE 다음 플래그가 설정되면 함수는 픽셀 형식의 PFD_STEREO 플래그를 무시합니다 . PFD_STEREO_DONTCARE
iPixelType 고려할 함수의 픽셀 형식을 지정합니다. PFD_TYPE_RGBA, PFD_TYPE_COLORINDEX
cColorBits 0 이상.
cRedBits 사용되지 않습니다.
cRedShift 사용되지 않습니다.
cGreenBits 사용되지 않습니다.
cGreenShift 사용되지 않습니다.
cBlueBits 사용되지 않습니다.
cBlueShift 사용되지 않습니다.
cAlphaBits 0 이상.
cAlphaShift 사용되지 않습니다.
cAccumBits 0 이상.
cAccumRedBits 사용되지 않습니다.
cAccumGreenBits 사용되지 않습니다.
cAccumBlueBits 사용되지 않습니다.
cAccumAlphaBits 사용되지 않습니다.
cDepthBits 0 이상.
cStencilBits 0 이상.
cAuxBuffers 0 이상.
iLayerType PFD_MAIN_PLANE,PFD_OVERLAY_PLANE, PFD_UNDERLAY_PLANE 계층 형식 값 중 하나를 지정합니다.
bReserved 사용되지 않습니다.
dwLayerMask 사용되지 않습니다.
dwVisibleMask 사용되지 않습니다.
dwDamageMask 사용되지 않습니다.
 

반환 값

함수가 성공하면 반환 값은 지정된 픽셀 형식 설명자와 가장 가까운 픽셀 형식 인덱스(1 기반)입니다.

함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

ChoosePixelFormat 함수와 일치하는 픽셀 형식이 요구 사항을 충족하는지 확인해야 합니다. 예를 들어 24비트 RGB 색 버퍼가 있는 픽셀 형식을 요청하지만 디바이스 컨텍스트에서 8비트 RGB 색 버퍼만 제공하는 경우 함수는 8비트 RGB 색 버퍼가 있는 픽셀 형식을 반환합니다.

예제

다음 코드 샘플에서는 ChoosePixelFormat 을 사용하여 지정된 픽셀 형식과 일치하는 방법을 보여줍니다.

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

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 wingdi.h
라이브러리 Gdi32.lib
DLL Gdi32.dll

추가 정보

DescribePixelFormat

GetPixelFormat

Windows의 OpenGL

SetPixelFormat

Windows 함수