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 次のいずれかのフラグが設定されている場合、 ChoosePixelFormat は、そのフラグまたはフラグが設定されているピクセル形式との照合を試みます。 それ以外の場合は、フラグが設定されていないピクセル形式の照合を試みます。 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 |
| Library | Gdi32.lib |
| [DLL] | Gdi32.dll |