Bagikan melalui


Fungsi SetPixelFormat (wingdi.h)

Fungsi SetPixelFormat mengatur format piksel konteks perangkat yang ditentukan ke format yang ditentukan oleh indeks iPixelFormat .

Sintaks

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

Parameter

hdc

Menentukan konteks perangkat yang format pikselnya coba disetel fungsi.

format

Indeks yang mengidentifikasi format piksel yang akan diatur. Berbagai format piksel yang didukung oleh konteks perangkat diidentifikasi oleh indeks berbasis satu.

ppfd

Penunjuk ke struktur PIXELFORMATDESCRIPTOR yang berisi spesifikasi format piksel logis. Komponen metafile sistem menggunakan struktur ini untuk merekam spesifikasi format piksel logis. Struktur tidak memiliki efek lain pada perilaku fungsi SetPixelFormat .

Nilai kembali

Jika fungsi berhasil, nilai yang dikembalikan adalah TRUE.

Jika fungsi gagal, nilai yang dikembalikan adalah FALSE. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.

Keterangan

Jika hdc mereferensikan jendela, memanggil fungsi SetPixelFormat juga mengubah format piksel jendela. Mengatur format piksel jendela lebih dari sekali dapat menyebabkan komplikasi yang signifikan untuk Window Manager dan untuk aplikasi multithread, sehingga tidak diizinkan. Aplikasi hanya dapat mengatur format piksel jendela satu kali. Setelah format piksel jendela diatur, format piksel tidak dapat diubah.

Anda harus memilih format piksel dalam konteks perangkat sebelum memanggil fungsi wglCreateContext . Fungsi wglCreateContext membuat konteks penyajian untuk menggambar pada perangkat dalam format piksel yang dipilih dari konteks perangkat.

Jendela OpenGL memiliki format pikselnya sendiri. Karena itu, hanya konteks perangkat yang diambil untuk area klien jendela OpenGL yang diizinkan untuk menggambar ke jendela. Akibatnya, jendela OpenGL harus dibuat dengan gaya WS_CLIPCHILDREN dan WS_CLIPSIBLINGS. Selain itu, atribut kelas jendela tidak boleh menyertakan gaya CS_PARENTDC.

Contoh

Contoh kode berikut menunjukkan penggunaan 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);

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header wingdi.h
Pustaka Gdi32.lib
DLL Gdi32.dll

Lihat juga

PilihFormatPixel

DescribePixelFormat

GetPixelFormat

OpenGL di Windows

Fungsi Windows