Bagikan melalui


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

Lihat juga

DrvEscape

WNDOBJ

WNDOBJCHANGEPROC