Bagikan melalui


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.

Catatan Untuk menulis kode yang kompatibel dengan Windows 32-bit dan 64-bit, gunakan SetClassLongPtr. Saat mengkompilasi untuk Windows 32-bit, SetClassLongPtr didefinisikan sebagai panggilan ke fungsi SetClassLong

 

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
GCL_CBCLSEXTRA
-20
Mengatur ukuran, dalam byte, dari memori tambahan yang terkait dengan kelas . Mengatur nilai ini tidak mengubah jumlah byte tambahan yang sudah dialokasikan.
GCL_CBWNDEXTRA
-18
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.
GCLP_ HBRBACKGROUND
-10
Mengganti handel ke kuas latar belakang yang terkait dengan kelas .
GCLP_HCURSOR
-12
Mengganti handel ke kursor yang terkait dengan kelas.
GCLP_HICON
-14
Mengganti handel ke ikon yang terkait dengan kelas.
GCLP_HICONSM
-34
Mengambil handel ke ikon kecil yang terkait dengan kelas .
GCLP_HMODULE
-16
Mengganti handel ke modul yang mendaftarkan kelas.
GCLP_MENUNAME
-8
Mengganti penunjuk ke string nama menu. String mengidentifikasi sumber daya menu yang terkait dengan kelas .
GCL_STYLE
-26
Mengganti bit gaya kelas jendela.
GCLP_WNDPROC
-24
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

GetClassLongPtr

Referensi

RegisterClassEx

SetWindowLongPtr

WNDCLASSEX

Kelas Jendela

WindowProc