Fungsi MaskBlt (wingdi.h)
Fungsi MaskBlt menggabungkan data warna untuk bitmap sumber dan tujuan menggunakan operasi mask dan raster yang ditentukan.
Sintaks
BOOL MaskBlt(
[in] HDC hdcDest,
[in] int xDest,
[in] int yDest,
[in] int width,
[in] int height,
[in] HDC hdcSrc,
[in] int xSrc,
[in] int ySrc,
[in] HBITMAP hbmMask,
[in] int xMask,
[in] int yMask,
[in] DWORD rop
);
Parameter
[in] hdcDest
Handel ke konteks perangkat tujuan.
[in] xDest
Koordinat x, dalam unit logis, dari sudut kiri atas persegi panjang tujuan.
[in] yDest
Koordinat y, dalam unit logis, dari sudut kiri atas persegi panjang tujuan.
[in] width
Lebar, dalam unit logis, persegi panjang tujuan dan bitmap sumber.
[in] height
Tinggi, dalam unit logis, persegi panjang tujuan dan bitmap sumber.
[in] hdcSrc
Handel ke konteks perangkat tempat bitmap akan disalin. Ini harus nol jika parameter dwRop menentukan operasi raster yang tidak menyertakan sumber.
[in] xSrc
Koordinat x, dalam unit logis, dari sudut kiri atas bitmap sumber.
[in] ySrc
Koordinat y, dalam unit logis, dari sudut kiri atas bitmap sumber.
[in] hbmMask
Handel ke bitmap mask monokrom dikombinasikan dengan bitmap warna dalam konteks perangkat sumber.
[in] xMask
Offset piksel horizontal untuk bitmap mask yang ditentukan oleh parameter hbmMask .
[in] yMask
Offset piksel vertikal untuk bitmap mask yang ditentukan oleh parameter hbmMask .
[in] rop
Kode operasi raster terner latar depan dan latar belakang (ROP) yang digunakan fungsi untuk mengontrol kombinasi data sumber dan tujuan. Kode operasi raster latar belakang disimpan dalam byte urutan tinggi dari kata urutan tinggi dari nilai ini; kode operasi raster latar depan disimpan dalam byte urutan rendah dari kata urutan tinggi dari nilai ini; kata berurutan rendah dari nilai ini diabaikan, dan harus nol. Makro MAKEROP4 membuat kombinasi kode operasi raster latar depan dan latar belakang seperti itu.
Untuk diskusi latar depan dan latar belakang dalam konteks fungsi ini, lihat bagian Keterangan berikut.
Untuk daftar kode operasi raster umum (ROP), lihat fungsi BitBlt . Perhatikan bahwa CAPTUREBLT ROP umumnya tidak dapat digunakan untuk mencetak konteks perangkat.
Nilai kembali
Jika fungsi berhasil, nilai yang dikembalikan bukan nol.
Jika fungsi gagal, nilai yang dikembalikan adalah nol.
Keterangan
Fungsi MaskBlt menggunakan bitmap yang bergantung pada perangkat.
Nilai 1 dalam masker yang ditentukan oleh hbmMask menunjukkan bahwa kode operasi raster latar depan yang ditentukan oleh dwRop harus diterapkan di lokasi tersebut. Nilai 0 dalam masker menunjukkan bahwa kode operasi raster latar belakang yang ditentukan oleh dwRop harus diterapkan di lokasi tersebut.
Jika operasi raster memerlukan sumber, persegi panjang masker harus menutupi persegi panjang sumber. Jika tidak, fungsi akan gagal. Jika operasi raster tidak memerlukan sumber, persegi panjang masker harus menutupi persegi panjang tujuan. Jika tidak, fungsi akan gagal.
Jika transformasi rotasi atau shear berlaku untuk konteks perangkat sumber saat fungsi ini dipanggil, kesalahan terjadi. Namun, jenis transformasi lainnya diizinkan.
Jika format warna bitmap sumber, pola, dan tujuan berbeda, fungsi ini mengonversi format pola atau sumber, atau keduanya, agar sesuai dengan format tujuan.
Jika bitmap mask bukan bitmap monokrom, kesalahan terjadi.
Ketika metafile yang ditingkatkan sedang direkam, kesalahan terjadi (dan fungsi mengembalikan FALSE) jika konteks perangkat sumber mengidentifikasi konteks perangkat metafile yang disempurnakan.
Tidak semua perangkat mendukung fungsi MaskBlt . Aplikasi harus memanggil fungsi GetDeviceCaps dengan parameter nIndex sebagai RC_BITBLT untuk menentukan apakah perangkat mendukung fungsi ini.
Jika tidak ada bitmap mask yang disediakan, fungsi ini berperilaku persis seperti BitBlt, menggunakan kode operasi raster latar depan.
ICM: Tidak ada manajemen warna yang dilakukan ketika blits terjadi.
Ketika digunakan dalam sistem beberapa monitor, hdcSrc dan hdcDest harus merujuk ke perangkat yang sama atau fungsi akan gagal. Untuk mentransfer data antara DC untuk perangkat yang berbeda, konversikan bitmap memori (bitmap yang kompatibel, atau DDB) ke DIB dengan memanggil GetDIBits. Untuk menampilkan DIB ke perangkat kedua, panggil SetDIBits atau StretchDIBits.
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 |