Fungsi GetDeviceCaps (wingdi.h)

Fungsi GetDeviceCaps mengambil informasi khusus perangkat untuk perangkat yang ditentukan.

Sintaks

int GetDeviceCaps(
  [in] HDC hdc,
  [in] int index
);

Parameter

[in] hdc

Handel ke DC.

[in] index

Item yang akan dikembalikan. Parameter ini bisa menjadi salah satu nilai berikut.

Indeks Makna
DRIVERVERSION
Versi driver perangkat.
TEKNOLOGI
Teknologi perangkat. Ini bisa menjadi salah satu nilai berikut.
DT_PLOTTER Plotter vektor
DT_RASDISPLAY Tampilan raster
DT_RASPRINTER Printer raster
DT_RASCAMERA Kamera raster
DT_CHARSTREAM Aliran karakter
DT_METAFILE Metafile
DT_DISPFILE Tampilkan file
 

Jika parameter hdc adalah handel ke DC metafile yang ditingkatkan, teknologi perangkat adalah perangkat yang direferensikan sebagaimana ditentukan ke fungsi CreateEnhMetaFile . Untuk menentukan apakah itu DC metafile yang disempurnakan, gunakan fungsi GetObjectType .

HORZSIZE
Lebar, dalam milimeter, dari layar fisik.
MEMVERIFIKASI
Tinggi, dalam milimeter, dari layar fisik.
HORZRES
Lebar, dalam piksel, layar; atau untuk printer, lebar, dalam piksel, dari area halaman yang dapat dicetak.
VERTRES
Tinggi, dalam garis raster, dari layar; atau untuk printer, tinggi, piksel, dari area halaman yang dapat dicetak.
LOGPIXELSX
Jumlah piksel per inci logis di sepanjang lebar layar. Dalam sistem dengan beberapa monitor tampilan, nilai ini sama untuk semua monitor.
LOGPIXELSY
Jumlah piksel per inci logis di sepanjang tinggi layar. Dalam sistem dengan beberapa monitor tampilan, nilai ini sama untuk semua monitor.
BITSPIXEL
Jumlah bit warna yang bersebelahan untuk setiap piksel.
PESAWAT
Jumlah bidang warna.
NUMBRUSHES
Jumlah kuas khusus perangkat.
NUMPENS
Jumlah pena khusus perangkat.
NUMFONTS
Jumlah font khusus perangkat.
NUMCOLORS
Jumlah entri dalam tabel warna perangkat, jika perangkat memiliki kedalaman warna tidak lebih dari 8 bit per piksel. Untuk perangkat dengan kedalaman warna yang lebih besar, -1 dikembalikan.
ASPEKX
Lebar relatif piksel perangkat yang digunakan untuk menggambar garis.
ASPEK
Tinggi relatif piksel perangkat yang digunakan untuk menggambar garis.
ASPEKXY
Lebar diagonal piksel perangkat yang digunakan untuk menggambar garis.
PDEVICESIZE
Dicadangkan.
CLIPCAPS
Bendera yang menunjukkan kemampuan kliping perangkat. Jika perangkat dapat mengklip ke persegi panjang, itu adalah 1. Jika tidak, itu adalah 0.
SIZEPALETTE
Jumlah entri dalam palet sistem. Indeks ini hanya valid jika driver perangkat mengatur bit RC_PALETTE dalam indeks RASTERCAPS dan hanya tersedia jika driver kompatibel dengan Windows 16-bit.
NUMRESERVED
Jumlah entri yang dipesan dalam palet sistem. Indeks ini hanya valid jika driver perangkat mengatur bit RC_PALETTE dalam indeks RASTERCAPS dan hanya tersedia jika driver kompatibel dengan Windows 16-bit.
COLORRES
Resolusi warna aktual perangkat, dalam bit per piksel. Indeks ini hanya valid jika driver perangkat mengatur bit RC_PALETTE dalam indeks RASTERCAPS dan hanya tersedia jika driver kompatibel dengan Windows 16-bit.
PHYSICALWIDTH
Untuk perangkat pencetakan: lebar halaman fisik, di unit perangkat. Misalnya, printer yang diatur untuk mencetak pada 600 dpi pada kertas 8,5-x11-inci memiliki nilai lebar fisik 5100 unit perangkat. Perhatikan bahwa halaman fisik hampir selalu lebih besar dari area halaman yang dapat dicetak, dan tidak pernah lebih kecil.
PHYSICALHEIGHT
Untuk perangkat pencetakan: tinggi halaman fisik, di unit perangkat. Misalnya, printer yang diatur untuk mencetak pada 600 dpi pada kertas 8,5-by-11-inci memiliki nilai tinggi fisik 6600 unit perangkat. Perhatikan bahwa halaman fisik hampir selalu lebih besar dari area halaman yang dapat dicetak, dan tidak pernah lebih kecil.
PHYSICALOFFSETX
Untuk perangkat pencetakan: jarak dari tepi kiri halaman fisik ke tepi kiri area yang dapat dicetak, di unit perangkat. Misalnya, printer yang diatur untuk mencetak pada 600 dpi pada kertas 8,5-by-11-inci, yang tidak dapat mencetak pada kertas paling kiri 0,25 inci, memiliki offset fisik horizontal 150 unit perangkat.
PHYSICALOFFSETY
Untuk perangkat pencetakan: jarak dari tepi atas halaman fisik ke tepi atas area yang dapat dicetak, di unit perangkat. Misalnya, printer yang diatur untuk mencetak pada 600 dpi pada kertas 8,5-by-11-inci, yang tidak dapat mencetak pada kertas paling atas 0,5 inci, memiliki offset fisik vertikal 300 unit perangkat.
VREFRESH
Untuk perangkat tampilan: laju refresh vertikal perangkat saat ini, dalam siklus per detik (Hz).

Nilai laju refresh vertikal 0 atau 1 mewakili laju refresh default perangkat keras tampilan. Laju default ini biasanya diatur oleh sakelar pada kartu tampilan atau motherboard komputer, atau oleh program konfigurasi yang tidak menggunakan fungsi tampilan seperti ChangeDisplaySettings.

SCALINGFACTORX
Faktor penskalaan untuk sumbu x printer.
SCALINGFACTORY
Faktor penskalaan untuk sumbu y printer.
BLTALIGNMENT
Perataan gambar horizontal pilihan, dinyatakan sebagai kelipatan piksel. Untuk performa gambar terbaik, jendela harus diselaraskan secara horizontal ke kelipatan nilai ini. Nilai nol menunjukkan bahwa perangkat dipercepat, dan perataan apa pun dapat digunakan.
SHADEBLENDCAPS
Nilai yang menunjukkan kemampuan bayangan dan perpaduan perangkat. Lihat Keterangan untuk komentar lebih lanjut.
SB_CONST_ALPHA Menangani anggota SourceConstantAlpha dari struktur BLENDFUNCTION , yang direferensikan oleh parameter blendFunction dari fungsi AlphaBlend .
SB_GRAD_RECT Mampu melakukan persegi panjang GradientFill .
SB_GRAD_TRI Mampu melakukan segitiga GradientFill .
SB_NONE Perangkat tidak mendukung salah satu kemampuan ini.
SB_PIXEL_ALPHA Mampu menangani alfa per piksel di AlphaBlend.
SB_PREMULT_ALPHA Mampu menangani alfa yang telah diubah sebelumnya di AlphaBlend.
 
RASTERCAPS
Nilai yang menunjukkan kemampuan raster perangkat, seperti yang ditunjukkan dalam tabel berikut.
RC_BANDING Membutuhkan dukungan banding.
RC_BITBLT Mampu mentransfer bitmap.
RC_BITMAP64 Mampu mendukung bitmap yang lebih besar dari 64 KB.
RC_DI_BITMAP Mampu mendukung fungsi SetDIBits dan GetDIBits .
RC_DIBTODEV Mampu mendukung fungsi SetDIBitsToDevice .
RC_FLOODFILL Mampu melakukan isian banjir.
RC_PALETTE Menentukan perangkat berbasis palet.
RC_SCALING Mampu menskalakan.
RC_STRETCHBLT Mampu melakukan fungsi StretchBlt .
RC_STRETCHDIB Mampu melakukan fungsi StretchDIBits .
 
CURVECAPS
Nilai yang menunjukkan kemampuan kurva perangkat, seperti yang diperlihatkan dalam tabel berikut.
CC_NONE Perangkat tidak mendukung kurva.
CC_CHORD Perangkat dapat menggambar busur akor.
CC_CIRCLES Perangkat dapat menggambar lingkaran.
CC_ELLIPSES Perangkat dapat menggambar elipsis.
CC_INTERIORS Perangkat dapat menggambar interior.
CC_PIE Perangkat dapat menggambar wedges pai.
CC_ROUNDRECT Perangkat dapat menggambar persegi panjang bulat.
CC_STYLED Perangkat dapat menggambar batas gaya.
CC_WIDE Perangkat dapat menggambar batas lebar.
CC_WIDESTYLED Perangkat dapat menggambar batas yang lebar dan ditata.
 
LINECAPS
Nilai yang menunjukkan kemampuan garis perangkat, seperti yang diperlihatkan dalam tabel berikut:
LC_NONE Perangkat tidak mendukung baris.
LC_INTERIORS Perangkat dapat menggambar interior.
LC_MARKER Perangkat dapat menggambar penanda.
LC_POLYLINE Perangkat dapat menggambar poliline.
LC_POLYMARKER Perangkat dapat menggambar beberapa penanda.
LC_STYLED Perangkat dapat menggambar garis bergaya.
LC_WIDE Perangkat dapat menggambar garis lebar.
LC_WIDESTYLED Perangkat dapat menggambar garis yang lebar dan ditata.
 
POLYGONALCAPS
Nilai yang menunjukkan kemampuan poligon perangkat, seperti yang diperlihatkan dalam tabel berikut.
PC_NONE Perangkat tidak mendukung poligon.
PC_INTERIORS Perangkat dapat menggambar interior.
PC_POLYGON Perangkat dapat menggambar poligon pengisian alternatif.
PC_RECTANGLE Perangkat dapat menggambar persegi panjang.
PC_SCANLINE Perangkat dapat menggambar satu pemindaian.
PC_STYLED Perangkat dapat menggambar batas gaya.
PC_WIDE Perangkat dapat menggambar batas lebar.
PC_WIDESTYLED Perangkat dapat menggambar batas yang lebar dan ditata.
PC_WINDPOLYGON Perangkat dapat menggambar poligon pengisian berliku.
 
TEXTCAPS
Nilai yang menunjukkan kemampuan teks perangkat, seperti yang diperlihatkan dalam tabel berikut.
TC_OP_CHARACTER Perangkat mampu menghasilkan presisi karakter.
TC_OP_STROKE Perangkat mampu melakukan presisi output stroke.
TC_CP_STROKE Perangkat mampu melakukan presisi klip goresan.
TC_CR_90 Perangkat mampu melakukan rotasi karakter 90 derajat.
TC_CR_ANY Perangkat mampu melakukan rotasi karakter apa pun.
TC_SF_X_YINDEP Perangkat dapat menskalakan secara independen ke arah x dan y.
TC_SA_DOUBLE Perangkat mampu menggandakan karakter untuk penskalaan.
TC_SA_INTEGER Perangkat hanya menggunakan perkalian bilangan bulat untuk penskalaan karakter.
TC_SA_CONTIN Perangkat menggunakan kelipatan apa pun untuk penskalaan karakter yang tepat.
TC_EA_DOUBLE Perangkat dapat menggambar karakter dengan bobot ganda.
TC_IA_ABLE Perangkat dapat memiringkan.
TC_UA_ABLE Perangkat dapat menggaris bawahi.
TC_SO_ABLE Perangkat dapat menarik strikeout.
TC_RA_ABLE Perangkat dapat menggambar font raster.
TC_VA_ABLE Perangkat dapat menggambar font vektor.
TC_RESERVED Dipesan; harus nol.
TC_SCROLLBLT Perangkat tidak dapat menggulir menggunakan transfer bit-block. Perhatikan bahwa makna ini mungkin berlawanan dengan apa yang Anda harapkan.
 
COLORMGMTCAPS
Nilai yang menunjukkan kemampuan manajemen warna perangkat.
CM_CMYK_COLOR Perangkat dapat menerima profil warna ICC ruang warna CMYK.
CM_DEVICE_ICM Perangkat dapat melakukan ICM pada driver perangkat atau perangkat itu sendiri.
CM_GAMMA_RAMP Perangkat mendukung GetDeviceGammaRamp dan SetDeviceGammaRamp
CM_NONE Perangkat tidak mendukung ICM.
 

Mengembalikan nilai

Nilai yang dikembalikan menentukan nilai item yang diinginkan.

Ketika nIndex adalah BITSPIXEL dan perangkat memiliki 15bpp atau 16bpp, nilai yang dikembalikan adalah 16.

Keterangan

Ketika nIndex adalah SHADEBLENDCAPS:

  • Untuk printer, GetDeviceCaps mengembalikan apa pun yang dilaporkan printer.
  • Untuk perangkat tampilan, semua operasi penpaduan tersedia; selain SB_NONE, satu-satunya nilai yang dikembalikan adalah SB_CONST_ALPHA dan SB_PIXEL_ALPHA, yang menunjukkan apakah operasi ini dipercepat.
Pada sistem beberapa monitor, jika hdc adalah desktop, GetDeviceCaps mengembalikan kemampuan monitor utama. Jika Anda ingin info untuk monitor lain, Anda harus menggunakan API multi-monitor atau CreateDC untuk mendapatkan HDC untuk konteks perangkat (DC) dari monitor tertentu.
Catatan Display1 biasanya merupakan monitor utama, tetapi tidak selalu.
 
GetDeviceCaps menyediakan enam indeks berikut sebagai pengganti escape printer.
Indeks Pelarian printer diganti
PHYSICALWIDTH GETPHYSPAGESIZE
PHYSICALHEIGHT GETPHYSPAGESIZE
PHYSICALOFFSETX GETPRINTINGOFFSET
PHYSICALOFFSETY GETPHYSICALOFFSET
SCALINGFACTORX GETSCALINGFACTOR
SCALINGFACTORY GETSCALINGFACTOR
 
CatatanGetDeviceCaps melaporkan info yang disediakan driver tampilan. Jika driver tampilan menolak untuk melaporkan info apa pun, GetDeviceCaps menghitung info berdasarkan perhitungan tetap. Jika driver tampilan melaporkan info yang tidak valid, GetDeviceCaps mengembalikan info yang tidak valid. Selain itu, jika driver tampilan menolak untuk melaporkan info, GetDeviceCaps mungkin menghitung info yang salah karena mengasumsikan DPI tetap (96 DPI) atau ukuran tetap (tergantung pada info yang dilakukan driver tampilan dan tidak menyediakan). Sayangnya, driver tampilan yang diimplementasikan ke Windows Display Driver Model (WDDM) (diperkenalkan di Windows Vista) menyebabkan GDI tidak mendapatkan info, sehingga GetDeviceCaps harus selalu menghitung info.
 

Contoh

Misalnya, lihat Bersiap mencetak.

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 (sertakan Windows.h)
Pustaka Gdi32.lib
DLL Gdi32.dll

Lihat juga

CreateEnhMetaFile

CreateIC

Fungsi Konteks Perangkat

Gambaran Umum Konteks Perangkat

DeviceCapabilities

GetDIBits

GetObjectType

SetDIBits

SetDIBitsToDevice

StretchBlt

StretchDIBits