Bagikan melalui


Fungsi SetClassLongW (winuser.h)

Mengganti nilai 32-bit (panjang) yang ditentukan pada offset yang ditentukan ke dalam memori kelas tambahan atau struktur WNDCLASSEX untuk kelas tempat jendela yang ditentukan berada.

Catatan Fungsi ini telah digantikan oleh fungsi SetClassLongPtr . Untuk menulis kode yang kompatibel dengan Windows versi 32-bit dan 64-bit, gunakan SetClassLongPtr.
 

Sintaks

DWORD SetClassLongW(
  [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

Nilai yang akan diganti. Untuk mengatur nilai 32-bit 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 empat; misalnya, jika Anda menentukan 12 byte atau lebih memori kelas tambahan, nilai 8 akan menjadi indeks ke bilangan bulat 32-bit ketiga. Untuk mengatur nilai lain dari 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 SetWindowLong.
GCL_HBRBACKGROUND
-10
Mengganti handel ke kuas latar belakang yang terkait dengan kelas .
GCL_HCURSOR
-12
Mengganti handel ke kursor yang terkait dengan kelas.
GCL_HICON
-14
Mengganti handel ke ikon yang terkait dengan kelas.
GCL_HICONSM
-34
Ganti handel ke ikon kecil yang terkait dengan kelas.
GCL_HMODULE
-16
Mengganti handel ke modul yang mendaftarkan kelas.
GCL_MENUNAME
-8
Mengganti alamat string nama menu. String mengidentifikasi sumber daya menu yang terkait dengan kelas .
GCL_STYLE
-26
Mengganti bit gaya kelas jendela.
GCL_WNDPROC
-24
Mengganti alamat prosedur jendela yang terkait dengan kelas .

[in] dwNewLong

Jenis: LONG

Nilai pengganti.

Nilai kembali

Jenis: DWORD

Jika fungsi berhasil, nilai yang dikembalikan adalah nilai sebelumnya dari bilangan bulat 32-bit yang ditentukan. Jika nilai 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 SetClassLong dan indeks GCL_WNDPROC untuk mengganti prosedur jendela, prosedur jendela harus sesuai dengan panduan yang ditentukan dalam deskripsi fungsi panggilan balik WindowProc .

Memanggil SetClassLong dengan indeks GCL_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 SetClassLong dengan hati-hati. Misalnya, dimungkinkan untuk mengubah warna latar belakang untuk kelas dengan menggunakan SetClassLong, tetapi perubahan ini tidak segera mengecat ulang semua jendela milik kelas.

Contoh

Misalnya, lihat Menampilkan Ikon.

Catatan

Header winuser.h mendefinisikan SetClassLong sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta pra-prosesor 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

GetClassLong

Referensi

RegisterClassEx

SetClassLongPtr

SetWindowLong

WNDCLASSEX

Kelas Jendela

WindowProc