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

GetParent

Referensi

Windows