Fungsi SetClassLongPtrW (winuser.h)
Mengganti nilai yang ditentukan pada offset yang ditentukan dalam memori kelas tambahan atau struktur WNDCLASSEX untuk kelas tempat jendela yang ditentukan berada.
Sintaks
ULONG_PTR SetClassLongPtrW(
[in] HWND hWnd,
[in] int nIndex,
[in] LONG_PTR dwNewLong
);
Parameter
[in] hWnd
Jenis: HWND
Handel ke jendela dan, secara tidak langsung, kelas tempat jendela berada.
[in] nIndex
Jenis: int
Nilai yang akan diganti. Untuk mengatur nilai dalam memori kelas tambahan, tentukan offset byte positif berbasis nol dari nilai yang akan ditetapkan. Nilai yang valid berada dalam rentang nol hingga jumlah byte memori kelas tambahan, dikurangi delapan; misalnya, jika Anda menentukan 24 byte atau lebih memori kelas tambahan, nilai 16 akan menjadi indeks ke bilangan bulat ketiga. Untuk mengatur nilai selain struktur WNDCLASSEX , tentukan salah satu nilai berikut.
Nilai | Makna |
---|---|
|
Mengatur ukuran, dalam byte, dari memori tambahan yang terkait dengan kelas . Mengatur nilai ini tidak mengubah jumlah byte tambahan yang sudah dialokasikan. |
|
Mengatur ukuran, dalam byte, memori jendela tambahan yang terkait dengan setiap jendela di kelas. Mengatur nilai ini tidak mengubah jumlah byte tambahan yang sudah dialokasikan. Untuk informasi tentang cara mengakses memori ini, lihat SetWindowLongPtr. |
|
Mengganti handel ke kuas latar belakang yang terkait dengan kelas . |
|
Mengganti handel ke kursor yang terkait dengan kelas. |
|
Mengganti handel ke ikon yang terkait dengan kelas. |
|
Mengambil handel ke ikon kecil yang terkait dengan kelas . |
|
Mengganti handel ke modul yang mendaftarkan kelas. |
|
Mengganti penunjuk ke string nama menu. String mengidentifikasi sumber daya menu yang terkait dengan kelas . |
|
Mengganti bit gaya kelas jendela. |
|
Mengganti penunjuk ke prosedur jendela yang terkait dengan kelas . |
[in] dwNewLong
Jenis: LONG_PTR
Nilai pengganti.
Mengembalikan nilai
Jenis: ULONG_PTR
Jika fungsi berhasil, nilai yang dikembalikan adalah nilai sebelumnya dari offset yang ditentukan. Jika ini sebelumnya tidak ditetapkan, nilai yang dikembalikan adalah nol.
Jika fungsi gagal, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.
Keterangan
Jika Anda menggunakan fungsi SetClassLongPtr dan indeks GCLP_WNDPROC untuk mengganti prosedur jendela, prosedur jendela harus sesuai dengan panduan yang ditentukan dalam deskripsi fungsi panggilan balik WindowProc .
Memanggil SetClassLongPtr dengan indeks GCLP_WNDPROC membuat subkelas kelas jendela yang memengaruhi semua jendela yang kemudian dibuat dengan kelas . Aplikasi dapat mensubkelas kelas sistem, tetapi tidak boleh subkelas kelas jendela yang dibuat oleh proses lain.
Pesan memori kelas tambahan dengan menentukan nilai bukan nol di anggota cbClsExtra dari struktur WNDCLASSEX yang digunakan dengan fungsi RegisterClassEx .
Gunakan fungsi SetClassLongPtr dengan hati-hati. Misalnya, dimungkinkan untuk mengubah warna latar belakang untuk kelas dengan menggunakan SetClassLongPtr, tetapi perubahan ini tidak segera mengecat ulang semua jendela milik kelas.
Catatan
Header winuser.h mendefinisikan SetClassLongPtr sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta praprosedur 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
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-windowclass-l1-1-2 (diperkenalkan dalam Windows 10, versi 10.0.10240) |
Lihat juga
Konseptual
Referensi