Fungsi SetParent (winuser.h)
Mengubah jendela induk dari jendela anak yang ditentukan.
Sintaks
HWND SetParent(
[in] HWND hWndChild,
[in, optional] HWND hWndNewParent
);
Parameter
[in] hWndChild
Jenis: HWND
Handel ke jendela anak.
[in, optional] hWndNewParent
Jenis: HWND
Handel ke jendela induk baru. Jika parameter ini NULL, jendela desktop menjadi jendela induk baru. Jika parameter ini HWND_MESSAGE, jendela anak menjadi jendela khusus pesan.
Nilai kembali
Jenis: HWND
Jika fungsi berhasil, nilai yang dikembalikan adalah handel ke jendela induk sebelumnya.
Jika fungsi gagal, nilai yang dikembalikan adalah NULL. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.
Keterangan
Aplikasi dapat menggunakan fungsi SetParent untuk mengatur jendela induk jendela pop-up, tumpang tindih, atau turunan.
Jika jendela yang diidentifikasi oleh parameter hWndChild terlihat, sistem melakukan penggalian ulang dan pengecatan ulang yang sesuai.
Untuk alasan kompatibilitas, SetParent tidak mengubah gaya jendela WS_CHILD atau WS_POPUP jendela jendela yang induknya sedang diubah. Oleh karena itu, jika hWndNewParentADALAH NULL, Anda juga harus menghapus bit WS_CHILD dan mengatur gaya WS_POPUP setelah memanggil SetParent. Sebaliknya, jika hWndNewParent bukan NULL dan jendela sebelumnya adalah anak desktop, Anda harus menghapus gaya WS_POPUP dan mengatur gaya WS_CHILD sebelum memanggil SetParent.
Saat Anda mengubah induk jendela, Anda harus menyinkronkan UISTATE dari kedua jendela. Untuk informasi selengkapnya, lihat WM_CHANGEUISTATE dan WM_UPDATEUISTATE.
Perilaku atau kesalahan tak terduga dapat terjadi jika hWndNewParent dan hWndChild berjalan dalam mode kesadaran DPI yang berbeda. Tabel di bawah ini menguraikan perilaku ini:
Operasi | Windows 8.1 | Windows 10 (1607 dan yang lebih lama) | Windows 10 (1703 dan yang lebih baru) |
---|---|---|---|
SetParent (In-Proc) | T/A | Reset paksa (dari proses saat ini) | Gagal (ERROR_INVALID_STATE) |
SetParent (Cross-Proc) | Reset paksa (proses jendela anak) | Reset paksa (proses jendela anak) | Reset paksa (proses jendela anak) |
Untuk informasi selengkapnya tentang kesadaran DPI, lihat dokumentasi DPI Tinggi Windows.
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 (termasuk Windows.h) |
Pustaka | User32.lib |
DLL | User32.dll |
Set API | ext-ms-win-ntuser-window-l1-1-0 (diperkenalkan dalam Windows 8) |
Lihat juga
Konseptual
Referensi