Bagikan melalui


Fungsi UpdateLayeredWindow (winuser.h)

Updates posisi, ukuran, bentuk, konten, dan transparansi jendela berlapis.

Sintaks

BOOL UpdateLayeredWindow(
  [in]           HWND          hWnd,
  [in, optional] HDC           hdcDst,
  [in, optional] POINT         *pptDst,
  [in, optional] SIZE          *psize,
  [in, optional] HDC           hdcSrc,
  [in, optional] POINT         *pptSrc,
  [in]           COLORREF      crKey,
  [in, optional] BLENDFUNCTION *pblend,
  [in]           DWORD         dwFlags
);

Parameter

[in] hWnd

Jenis: HWND

Handel ke jendela berlapis. Jendela berlapis dibuat dengan menentukan WS_EX_LAYERED saat membuat jendela dengan fungsi CreateWindowEx .

Windows 8: Gaya WS_EX_LAYERED didukung untuk jendela tingkat atas dan jendela anak. Versi Windows sebelumnya mendukung WS_EX_LAYERED hanya untuk jendela tingkat atas.

[in, optional] hdcDst

Jenis: HDC

Handel ke DC untuk layar. Handel ini diperoleh dengan menentukan NULL saat memanggil fungsi GetDC . Ini digunakan untuk pencocokan warna palet ketika konten jendela diperbarui. Jika hdcDst adalah NULL, palet default akan digunakan.

Jika hdcSrcadalah NULL, hdcDst harus NULL.

[in, optional] pptDst

Jenis: TITIK*

Penunjuk ke struktur yang menentukan posisi layar baru jendela berlapis. Jika posisi saat ini tidak berubah, pptDst bisa NULL.

[in, optional] psize

Jenis: UKURAN*

Penunjuk ke struktur yang menentukan ukuran baru jendela berlapis. Jika ukuran jendela tidak berubah, ukuran psize bisa NULL. Jika hdcSrcadalah NULL, psize harus NULL.

[in, optional] hdcSrc

Jenis: HDC

Handel ke DC untuk permukaan yang menentukan jendela berlapis. Handel ini dapat diperoleh dengan memanggil fungsi CreateCompatibleDC . Jika bentuk dan konteks visual jendela tidak berubah, hdcSrc bisa null.

[in, optional] pptSrc

Jenis: TITIK*

Penunjuk ke struktur yang menentukan lokasi lapisan dalam konteks perangkat. Jika hdcSrc adalah NULL, pptSrc harus NULL.

[in] crKey

Jenis: COLORREF

Struktur yang menentukan kunci warna yang akan digunakan saat menyusun jendela berlapis. Untuk menghasilkan COLORREF, gunakan makro RGB .

[in, optional] pblend

Jenis: BLENDFUNCTION*

Penunjuk ke struktur yang menentukan nilai transparansi yang akan digunakan saat menyusun jendela berlapis.

[in] dwFlags

Jenis: DWORD

Parameter ini bisa menjadi salah satu nilai berikut.

Nilai Makna
ULW_ALPHA
0x00000002
Gunakan pblend sebagai fungsi campuran. Jika mode tampilan adalah 256 warna atau kurang, efek nilai ini sama dengan efek ULW_OPAQUE.
ULW_COLORKEY
0x00000001
Gunakan crKey sebagai warna transparansi.
ULW_OPAQUE
0x00000004
Gambar jendela berlapis buram.
ULW_EX_NORESIZE
0x00000008
Paksa fungsi UpdateLayeredWindowIndirect gagal jika ukuran jendela saat ini tidak cocok dengan ukuran yang ditentukan dalam psize.
 

Jika hdcSrc adalah NULL, dwFlags harus nol.

Nilai kembali

Jenis: BOOL

Jika fungsi berhasil, nilai yang dikembalikan bukan nol.

Jika fungsi gagal, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.

Keterangan

DC sumber harus berisi permukaan yang menentukan konten jendela berlapis yang terlihat. Misalnya, Anda dapat memilih bitmap ke dalam konteks perangkat yang diperoleh dengan memanggil fungsi CreateCompatibleDC .

Aplikasi harus memanggil SetLayout pada konteks perangkat hdcSrc untuk mengatur mode pencerminan dengan benar. SetLayout akan mencerminkan semua gambar dengan benar ke dalam HDC sambil mempertahankan urutan arah bitmap teks dan (opsional) dengan benar. Ini tidak dapat mengubah gambar langsung ke bit bitmap independen perangkat (DIB). Untuk informasi selengkapnya, lihat Tata Letak Jendela dan Pencerminan.

Fungsi UpdateLayeredWindow mempertahankan tampilan jendela di layar. Jendela di bawah jendela berlapis tidak perlu dicat ulang ketika mereka terbongkar karena panggilan ke UpdateLayeredWindow, karena sistem akan secara otomatis mengecatnya kembali. Ini memungkinkan animasi tanpa hambatan dari jendela berlapis.

UpdateLayeredWindow selalu memperbarui seluruh jendela. Untuk memperbarui bagian jendela, gunakan WM_PAINT tradisional dan atur nilai campuran menggunakan SetLayeredWindowAttributes.

Untuk performa gambar terbaik oleh jendela berlapis dan jendela yang mendasar, jendela berlapis harus sesederhana mungkin. Aplikasi juga harus memproses pesan dan membuat ulang jendela berlapisnya saat kedalaman warna tampilan berubah.

Untuk informasi selengkapnya, lihat Windows Berlapis.

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 winuser.h (sertakan Windows.h)
Pustaka User32.lib
DLL User32.dll
Set API ext-ms-win-ntuser-window-l1-1-1 (diperkenalkan dalam Windows 8.1)

Lihat juga

AlphaBlend

Konseptual

CreateCompatibleBitmap

Sumber Daya Lain

Referensi

SetWindowLong

SetWindowPos

TransparentBlt

UpdateLayeredWindowIndirect

Windows