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 |