Fungsi EngCreateWnd (winddi.h)
Fungsi EngCreateWnd membuat struktur WNDOBJ untuk jendela yang direferensikan oleh hwnd.
Sintaks
ENGAPI WNDOBJ * EngCreateWnd(
SURFOBJ *pso,
HWND hwnd,
WNDOBJCHANGEPROC pfn,
FLONG fl,
int iPixelFormat
);
Parameter
pso
Penunjuk ke struktur SURFOBJ yang mengidentifikasi permukaan perangkat.
hwnd
Tangani ke jendela yang dibuat oleh panggilan aplikasi ke Win32 CreateWindow atau fungsi yang setara.
pfn
fl
Adalah bitmask yang menentukan jenis perubahan yang harus dilacak dan dilaporkan ke driver. Nilai ini harus konsisten melalui semua permintaan WNDOBJ yang dibuat oleh driver. Parameter ini bisa menjadi satu atau beberapa nilai bitfield berikut:
Bendera | Makna |
---|---|
WO_DRAW_NOTIFY | GDI harus memberi driver pemberitahuan WOC_DRAWN. |
WO_RGN_CLIENT | GDI harus melacak perubahan di wilayah klien objek jendela, dan memberi tahu driver saat wilayah klien jendela yang terlihat berubah. Wilayah yang dijumlahkan dalam fungsi panggilan balik adalah area klien baru yang terlihat dari jendela. |
WO_RGN_CLIENT_DELTA | GDI harus melacak perubahan di wilayah klien delta objek jendela, dan memberi tahu driver saat wilayah jendela yang terlihat berubah. Wilayah yang dijumlahkan dalam fungsi panggilan balik adalah area delta tidak kosong yang berada di wilayah baru tetapi tidak di wilayah lama. Wilayah delta hanya valid selama panggilan balik. |
WO_RGN_DESKTOP_COORD |
GDI membuat struktur WNDOBJ dengan koordinat desktop saat sistem menjalankan beberapa monitor.
GDI mengabaikan bendera ini dan membuat struktur WNDOBJ dengan koordinat perangkat saat sistem menjalankan satu monitor. |
WO_RGN_SURFACE | GDI harus melacak perubahan di wilayah permukaan objek jendela, dan memberi tahu driver saat wilayah permukaan berubah. Wilayah permukaan adalah area permukaan tampilan tidak termasuk semua wilayah klien jendela yang terlihat yang dilacak oleh driver. |
WO_RGN_SURFACE_DELTA | GDI harus melacak perubahan di wilayah permukaan delta objek jendela, dan memberi tahu driver saat wilayah permukaan berubah. Wilayah yang dijumlahkan dalam fungsi panggilan balik adalah area delta tidak kosong yang berada di wilayah permukaan baru tetapi tidak di wilayah permukaan lama. Wilayah permukaan delta hanya valid selama panggilan balik. |
WO_RGN_UPDATE_ALL | GDI harus memberi tahu driver untuk semua jendela yang dilacaknya ketika salah satu wilayah jendelanya yang terlihat berubah. Bendera ini harus digunakan bersama dengan bendera WO_RGN_CLIENT. |
WO_RGN_WINDOW | GDI harus melacak perubahan di seluruh wilayah objek jendela (yang mencakup wilayah klien jendela), dan memberi tahu driver saat wilayah jendela berubah. |
WO_SPRITE_NOTIFY | GDI harus memberi tahu driver untuk semua jendela yang dilacaknya ketika salah satu wilayah jendela yang terlihat tumpang tindih atau tidak lagi tumpang tindih oleh sprite. |
iPixelFormat
Menentukan format piksel yang terkait dengan objek jendela. Format piksel objek jendela diperbaiki. Parameter ini bisa menjadi nol jika tidak ada format piksel terkait.
Nilai kembali
Nilai yang dikembalikan adalah penunjuk ke struktur WNDOBJ jika fungsi berhasil. Jika tidak, nilai yang dikembalikan adalah −1 jika jendela yang sama sedang dilacak oleh driver, atau nol jika driver tidak melacak jendela yang sama.
Keterangan
Karena membuat objek jendela melibatkan penguncian sumber daya jendela, EngCreateWnd harus dipanggil hanya dalam konteks escape WNDOBJ_SETUP di DrvEscape.
EngCreateWnd mendukung pelacakan jendela oleh beberapa driver, di mana setiap driver diidentifikasi oleh pointer fungsi WNDOBJCHANGEPROC unik yang diidentifikasi oleh pfn. Misalnya, driver video langsung dapat melacak perubahan pada jendela video langsung saat driver OpenGL melacak perubahan pada jendela OpenGL.
GDI akan memanggil WNDOBJCHANGEPROC dengan status jendela terbaru jika WNDOBJ baru dibuat oleh DrvEscape. GDI juga akan memberi tahu WNDOBJCHANGEPROC ketika jendela yang dijelaskan oleh struktur WNDOBJ dihancurkan.
Pemberitahuan WOC_SPRITE_OVERLAP dan WOC_SPRITE_NO_OVERLAP yang diteruskan ke WNDOBJCHANGEPROC memungkinkan driver untuk diberi tahu secara sinkron ketika sprite berada di atas jendelanya, dan mengambil tindakan yang sesuai. Driver menerima pemberitahuan ini meskipun semua sprite telah ditumbangkan oleh bendera ECS_TEARDOWN EngControlSprites.
Persyaratan
Persyaratan | Nilai |
---|---|
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 |