次の方法で共有


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_WINDOWPFD_DRAW_TO_BITMAPPFD_SUPPORT_GDIPFD_SUPPORT_OPENGL 次のいずれかのフラグが設定されている場合、 ChoosePixelFormat は、そのフラグまたはフラグが設定されているピクセル形式との照合を試みます。 それ以外の場合は、フラグが設定されていないピクセル形式の照合を試みます。 PFD_DOUBLEBUFFER PFD_STEREO 次のフラグが設定されている場合、関数はピクセル形式の PFD_DOUBLEBUFFER フラグを無視します。 PFD_DOUBLEBUFFER_DONTCARE 次のフラグが設定されている場合、関数はピクセル形式の PFD_STEREO フラグを無視 します: PFD_STEREO_DONTCARE
iPixelType 考慮する関数のピクセル形式の種類を指定 します:PFD_TYPE_RGBAPFD_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_PLANEPFD_OVERLAY_PLANEPFD_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

関連項目

DescribePixelFormat

GetPixelFormat

Windows 上の OpenGL

SetPixelFormat

Windows 関数