次の方法で共有


SetPixelFormat 関数 (wingdi.h)

SetPixelFormat 関数は、指定したデバイス コンテキストのピクセル形式を iPixelFormat インデックスで指定された形式に設定します。

構文

BOOL SetPixelFormat(
  HDC                         hdc,
  int                         format,
  const PIXELFORMATDESCRIPTOR *ppfd
);

パラメーター

hdc

関数が設定を試みるピクセル形式のデバイス コンテキストを指定します。

format

設定するピクセル形式を識別するインデックス。 デバイス コンテキストでサポートされるさまざまなピクセル形式は、1 ベースのインデックスによって識別されます。

ppfd

論理ピクセル形式の指定を含む PIXELFORMATDESCRIPTOR 構造体へのポインター。 システムのメタファイル コンポーネントは、この構造体を使用して論理ピクセル形式の仕様を記録します。 構造体は 、SetPixelFormat 関数の動作に他の影響を及ぼす影響はありません。

戻り値

関数が成功した場合、戻り値は TRUE になります

関数が失敗した場合、戻り値は FALSE になります。 詳細なエラー情報を得るには、GetLastError を呼び出します。

解説

hdc がウィンドウを参照している場合、SetPixelFormat 関数を呼び出すと、ウィンドウのピクセル形式も変更されます。 ウィンドウのピクセル形式を複数回設定すると、ウィンドウ マネージャーとマルチスレッド アプリケーションで重大な問題が発生する可能性があるため、許可されません。 アプリケーションでは、ウィンドウのピクセル形式を 1 回だけ設定できます。 ウィンドウのピクセル形式を設定すると、変更できません。

wglCreateContext 関数を呼び出す前に、デバイス コンテキストでピクセル形式を選択する必要があります。 wglCreateContext 関数は、デバイス コンテキストの選択したピクセル形式でデバイスに描画するためのレンダリング コンテキストを作成します。

OpenGL ウィンドウには、独自のピクセル形式があります。 このため、OpenGL ウィンドウのクライアント領域に対して取得されたデバイス コンテキストのみがウィンドウに描画できます。 その結果、WS_CLIPCHILDRENスタイルとWS_CLIPSIBLINGSスタイルを使用して OpenGL ウィンドウを作成する必要があります。 また、ウィンドウ クラス属性には、CS_PARENTDC スタイルを含めないようにしてください。

次のコード例は 、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);

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー wingdi.h
Library Gdi32.lib
[DLL] Gdi32.dll

こちらもご覧ください

ChoosePixelFormat

DescribePixelFormat

GetPixelFormat

Windows 上の OpenGL

Windows 関数