Fungsi EngSetPointerShape (winddi.h)
Fungsi EngSetPointerShape mengatur bentuk penunjuk untuk driver panggilan.
Sintaks
ENGAPI ULONG EngSetPointerShape(
[in] SURFOBJ *pso,
[in] SURFOBJ *psoMask,
[in] SURFOBJ *psoColor,
[in] XLATEOBJ *pxlo,
[in] LONG xHot,
[in] LONG yHot,
[in] LONG x,
[in] LONG y,
[in] RECTL *prcl,
[in] FLONG fl
);
Parameter
[in] pso
Penunjuk ke struktur SURFOBJ yang menggambarkan permukaan untuk menggambar.
[in] psoMask
Penunjuk ke struktur SURFOBJ yang mendefinisikan masker AND-XOR untuk diterapkan ke bitmap pointer. Bagian atas bitmap menentukan monokrom DAN masker dan bagian bawah menentukan masker XOR monokrom. Penunjuk memiliki lebar yang sama dan setengah tinggi masker tempat psoMask menunjuk . Tidak ada batasan implisit pada ukuran pointer, tetapi ukuran pointer optimal adalah 32 x 32, 48 x 48, dan 64 x 64 piksel. Jika parameter ini NULL, penunjuk transparan.
[in] psoColor
Penunjuk ke struktur SURFOBJ yang menentukan warna untuk penunjuk warna. Bitmap ini memiliki lebar yang sama dan setengah tinggi bitmap tempat psoMask menunjuk , dan dalam format warna yang sama dengan permukaan tempat titik pso . Jika parameter ini NULL, penunjuknya adalah monokrom.
[in] pxlo
Penunjuk ke struktur XLATEOBJ yang menentukan warna dalam psoColor.
[in] xHot
Menentukan koordinat x titik panas penunjuk relatif terhadap piksel kiri atasnya. Piksel yang ditunjukkan oleh hot spot harus diposisikan pada posisi pointer baru.
[in] yHot
Menentukan koordinat y titik panas penunjuk relatif terhadap piksel kiri atasnya. Piksel yang ditunjukkan oleh hot spot harus diposisikan pada posisi pointer baru.
[in] x
Menentukan koordinat x dari posisi penunjuk baru.
[in] y
Menentukan koordinat y dari posisi penunjuk baru.
[in] prcl
Penunjuk ke struktur RECTL . Jika non-NULL, driver telah menyediakan persegi panjang yang mengikat semua piksel yang dipengaruhi oleh penunjuk pada layar. GDI menghindari menggambar pada persegi panjang ini tanpa terlebih dahulu memindahkan pointer keluar dari jalan.
[in] fl
Menentukan sekumpulan bendera yang harus digunakan GDI untuk memproses panggilan ini. Parameter ini bisa berupa satu atau beberapa nilai yang telah ditentukan sebelumnya berikut:
Bendera | Makna |
---|---|
SPS_ANIMATESTART | GDI harus disiapkan untuk menerima serangkaian bentuk penunjuk berukuran sama yang akan terdiri dari efek penunjuk animasi. |
SPS_ANIMATEUPDATE | GDI harus menggambar bentuk penunjuk berikutnya dalam seri animasi. |
SPS_CHANGE | GDI diminta untuk mengubah bentuk penunjuk. |
Nilai kembali
EngSetPointerShape mengembalikan salah satu nilai berikut:
Menampilkan kode | Deskripsi |
---|---|
|
GDI menerima bentuknya. GDI tidak membaca dari atau menulis ke persegi panjang yang ditulis di rrcl tanpa terlebih dahulu memindahkan pointer keluar dari jalan. |
|
GDI biasanya mendukung bentuk ini, tetapi gagal karena alasan yang tidak biasa. |
Keterangan
Driver dapat memanggil EngSetPointerShape agar GDI mengelola kursor perangkat lunak.
Ada dua bagian bitmap monokrom yang menunjuk psoMask . Bagian pertama mendefinisikan masker AND untuk pointer sementara bagian kedua mendefinisikan masker XOR. Disatukan, masker ini menyediakan dua bit informasi untuk setiap piksel gambar penunjuk. Tabel kebenaran berikut menentukan apa yang digambar GDI pada tampilan untuk nilai yang berbeda dalam masker AND dan XOR:
Nilai AND | Nilai XOR | Piksel Yang Dihasilkan |
---|---|---|
0 | 0 | Putih |
0 | 1 | Hitam |
1 | 0 | Tidak ada perubahan piksel |
1 | 1 | Warna piksel terbalik |
Mekanisme ini memasok gambar hitam dan putih sambil memungkinkan transparansi dan inversi piksel yang membentuk penunjuk.
Persyaratan
Klien minimum yang didukung | Tersedia di Windows 2000 dan versi yang lebih baru dari sistem operasi Windows. |
Target Platform | Universal |
Header | winddi.h (termasuk Winddi.h) |
Pustaka | Win32k.lib |
DLL | Win32k.sys |