Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Mengubah atribut jendela yang ditentukan. Fungsi ini juga mengatur nilai 32-bit (panjang) pada offset yang ditentukan ke dalam memori jendela tambahan.
Sintaksis
LONG SetWindowLongA(
[in] HWND hWnd,
[in] int nIndex,
[in] LONG dwNewLong
);
Parameter
[in] hWnd
Jenis: HWND
Handel ke jendela dan, secara tidak langsung, kelas tempat jendela berada.
[in] nIndex
Jenis: int
Offset berbasis nol ke nilai yang akan diatur. Nilai yang valid berada dalam rentang nol melalui jumlah byte memori jendela tambahan, dikurangi ukuran bilangan bulat. Untuk mengatur nilai lain, tentukan salah satu nilai berikut.
Nilai | Arti |
---|---|
|
Mengatur gaya jendela diperluas baru. |
|
Mengatur handel instans aplikasi baru. |
|
Mengatur pengidentifikasi baru jendela anak. Jendela tidak boleh berupa jendela tingkat atas. |
|
Mengatur gaya jendela baru. |
|
Mengatur data pengguna yang terkait dengan jendela. Data ini ditujukan untuk digunakan oleh aplikasi yang membuat jendela. Nilainya awalnya nol. |
|
Mengatur alamat baru untuk prosedur jendela.
Anda tidak dapat mengubah atribut ini jika jendela bukan milik proses yang sama dengan utas panggilan. |
Nilai berikut juga tersedia saat parameter hWnd mengidentifikasi kotak dialog.
[in] dwNewLong
Jenis: LONG
Nilai penggantian.
Mengembalikan nilai
Jenis: LONG
Jika fungsi berhasil, nilai pengembalian adalah nilai sebelumnya dari bilangan bulat 32-bit yang ditentukan.
Jika fungsi gagal, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, panggil GetLastError.
Jika nilai sebelumnya dari bilangan bulat 32-bit yang ditentukan adalah nol, dan fungsi berhasil, nilai pengembalian adalah nol, tetapi fungsi tidak menghapus informasi kesalahan terakhir. Ini menyulitkan untuk menentukan keberhasilan atau kegagalan. Untuk menangani hal ini, Anda harus menghapus informasi kesalahan terakhir dengan memanggil SetLastError dengan 0 sebelum memanggil SetWindowLong. Kemudian, kegagalan fungsi akan ditunjukkan oleh nilai pengembalian nol dan hasil GetLastError yang bukan nol.
Komentar
Data jendela tertentu di-cache, sehingga perubahan yang Anda buat menggunakan
Jika Anda menggunakan SetWindowLong dengan indeks GWL_WNDPROC untuk mengganti prosedur jendela, prosedur jendela harus sesuai dengan pedoman yang ditentukan dalam deskripsi fungsi panggilan balik WindowProc.
Jika Anda menggunakan SetWindowLong dengan indeks DWL_MSGRESULT untuk mengatur nilai pengembalian untuk pesan yang diproses oleh prosedur dialog, Anda harus mengembalikan TRUE langsung setelahnya. Jika tidak, jika Anda memanggil fungsi apa pun yang mengakibatkan prosedur dialog Anda menerima pesan jendela, pesan jendela berlapis dapat menimpa nilai pengembalian yang Anda tetapkan menggunakan DWL_MSGRESULT.
Memanggil SetWindowLong dengan indeks GWL_WNDPROC membuat subkelas kelas jendela yang digunakan untuk membuat jendela. Aplikasi dapat mensubkelas kelas sistem, tetapi tidak boleh mensubkelas kelas jendela yang dibuat oleh proses lain. Fungsi SetWindowLong
Pesan memori jendela tambahan dengan menentukan nilai bukan nol dalam cbWndExtra anggota struktur WNDCLASSEX yang digunakan dengan fungsi RegisterClassEx.
Anda tidak boleh memanggil SetWindowLong dengan indeks GWL_HWNDPARENT untuk mengubah induk jendela anak. Sebagai gantinya, gunakan fungsi SetParent
Jika jendela memiliki gaya kelas CS_CLASSDC atau CS_OWNDC, jangan atur gaya jendela yang diperluas WS_EX_COMPOSITED atau WS_EX_LAYERED.
Memanggil SetWindowLong untuk mengatur gaya pada progressbar akan mengatur ulang posisinya.
Contoh
Misalnya, lihat Subkelas Jendela.
Nota
Header winuser.h mendefinisikan SetWindowLong sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta preprosedur UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.
Persyaratan
Syarat | Nilai |
---|---|
klien minimum yang didukung | Windows 2000 Professional [hanya aplikasi desktop] |
server minimum yang didukung |
Windows 2000 Server [hanya aplikasi desktop] |
Platform Target |
Windows |
Header |
winuser.h (termasuk Windows.h) |
Pustaka |
User32.lib |
DLL |
User32.dll |
set API |
ext-ms-win-ntuser-windowclass-l1-1-0 (diperkenalkan di Windows 8) |
Lihat juga
Konseptual
Referensi
SetParent
Kelas Jendela