Fungsi ScrollWindowEx (winuser.h)
Fungsi ScrollWindowEx menggulir konten area klien jendela yang ditentukan.
Sintaks
int ScrollWindowEx(
[in] HWND hWnd,
[in] int dx,
[in] int dy,
[in] const RECT *prcScroll,
[in] const RECT *prcClip,
[in] HRGN hrgnUpdate,
[out] LPRECT prcUpdate,
[in] UINT flags
);
Parameter
[in] hWnd
Jenis: HWND
Tangani ke jendela tempat area klien akan digulir.
[in] dx
Jenis: int
Menentukan jumlah, dalam unit perangkat, dari pengguliran horizontal. Parameter ini harus berupa nilai negatif untuk menggulir ke kiri.
[in] dy
Jenis: int
Menentukan jumlah, dalam unit perangkat, dari pengguliran vertikal. Parameter ini harus berupa nilai negatif untuk menggulir ke atas.
[in] prcScroll
Jenis: const RECT*
Penunjuk ke struktur RECT yang menentukan bagian area klien yang akan digulir. Jika parameter ini NULL, seluruh area klien akan digulir.
[in] prcClip
Jenis: const RECT*
Penunjuk ke struktur RECT yang berisi koordinat persegi panjang kliping. Hanya bit perangkat dalam persegi panjang kliping yang terpengaruh. Bit yang digulir dari luar persegi panjang ke dalam dicat; bit yang digulir dari dalam persegi panjang ke luar tidak dicat. Parameter ini mungkin NULL.
[in] hrgnUpdate
Jenis: HRGN
Tangani ke wilayah yang dimodifikasi untuk menahan wilayah tidak valid dengan menggulir. Parameter ini mungkin NULL.
[out] prcUpdate
Jenis: LPRECT
Penunjuk ke struktur RECT yang menerima batas persegi panjang tidak valid dengan menggulir. Parameter ini mungkin NULL.
[in] flags
Jenis: UINT
Menentukan bendera yang mengontrol pengguliran. Parameter ini bisa menjadi kombinasi dari nilai berikut.
Nilai | Makna |
---|---|
|
Menghapus wilayah yang baru tidak valid dengan mengirim pesan WM_ERASEBKGND ke jendela ketika ditentukan dengan bendera SW_INVALIDATE. |
|
Membatalkan wilayah yang diidentifikasi oleh parameter hrgnUpdate setelah menggulir. |
|
Menggulir semua jendela anak yang berpotongan persegi panjang yang ditunjukkan oleh parameter prcScroll . Jendela anak digulirkan oleh jumlah piksel yang ditentukan oleh parameter dx dan dy . Sistem mengirimkan pesan WM_MOVE ke semua jendela anak yang berpotongan persegi panjang prcScroll , bahkan jika mereka tidak bergerak. |
|
Menggulir menggunakan pengguliran halus. Gunakan bagian HIWORD dari parameter bendera untuk menunjukkan berapa banyak waktu, dalam milidetik, operasi pengguliran halus harus dilakukan. |
Mengembalikan nilai
Jenis: int
Jika fungsi berhasil, nilai yang dikembalikan adalah SIMPLEREGION (wilayah tidak valid persegi panjang), COMPLEXREGION (wilayah yang tidak valid nonrektangular; persegi panjang yang tumpang tindih), atau NULLREGION (tidak ada wilayah yang tidak valid).
Jika fungsi gagal, nilai yang dikembalikan adalah ERROR. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.
Keterangan
Jika bendera SW_INVALIDATE dan SW_ERASE tidak ditentukan, ScrollWindowEx tidak membatalkan area yang digulir. Jika salah satu bendera ini diatur, ScrollWindowEx membatalkan area ini. Area tidak diperbarui sampai aplikasi memanggil fungsi UpdateWindow , memanggil fungsi RedrawWindow (menentukan bendera RDW_UPDATENOW atau RDW_ERASENOW), atau mengambil pesan WM_PAINT dari antrean aplikasi.
Jika jendela memiliki gaya WS_CLIPCHILDREN , area yang dikembalikan yang ditentukan oleh hrgnUpdate dan prcUpdate mewakili area total jendela yang digulir yang harus diperbarui, termasuk area apa pun di jendela anak yang perlu diperbarui.
Jika bendera SW_SCROLLCHILDREN ditentukan, sistem tidak memperbarui layar dengan benar jika bagian dari jendela anak digulir. Bagian dari jendela anak yang digulir yang terletak di luar persegi panjang sumber tidak dihapus dan tidak digambar ulang dengan benar di tujuan barunya. Untuk memindahkan jendela anak yang tidak sepenuhnya berada dalam persegi panjang yang ditentukan oleh prcScroll, gunakan fungsi DeferWindowPos . Kursor diposisikan ulang jika bendera SW_SCROLLCHILDREN diatur dan persegi panjang tanda sisipan akan bersinggungan dengan persegi panjang gulir.
Semua koordinat input dan output (untuk prcScroll, prcClip, prcUpdate, dan hrgnUpdate) ditentukan sebagai koordinat klien, terlepas dari apakah jendela memiliki gaya kelas CS_OWNDC atau CS_CLASSDC . Gunakan fungsi LPtoDP dan DPtoLP untuk mengonversi ke dan dari koordinat logis, jika perlu.
Contoh
Misalnya, lihat Menggulir Teks dengan Pesan WM_PAINT.
Persyaratan
Klien minimum yang didukung | Windows Vista [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2003 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | winuser.h (sertakan Windows.h) |
Pustaka | User32.lib |
DLL | User32.dll |
Set API | ext-ms-win-ntuser-misc-l1-2-0 (diperkenalkan di Windows 8.1) |
Lihat juga
Sumber Daya Lain