Bagikan melalui


Fungsi SetWindowSubclass (commctrl.h)

Menginstal atau memperbarui panggilan balik subkelas jendela.

Sintaks

BOOL SetWindowSubclass(
  [in] HWND         hWnd,
  [in] SUBCLASSPROC pfnSubclass,
  [in] UINT_PTR     uIdSubclass,
  [in] DWORD_PTR    dwRefData
);

Parameter

[in] hWnd

Jenis: HWND

Handel jendela sedang di-subkelas.

[in] pfnSubclass

Jenis: SUBCLASSPROC

Penunjuk ke prosedur jendela. Pointer ini dan ID subkelas secara unik mengidentifikasi panggilan balik subkelas ini. Untuk prototipe fungsi panggilan balik, lihat SUBCLASSPROC.

[in] uIdSubclass

Jenis: UINT_PTR

ID subkelas. ID ini bersama dengan prosedur subkelas secara unik mengidentifikasi subkelas. Untuk menghapus subkelas, teruskan prosedur subkelas dan nilai ini ke fungsi RemoveWindowSubclass . Nilai ini diteruskan ke prosedur subkelas dalam parameter uIdSubclass.

[in] dwRefData

Jenis: DWORD_PTR

DWORD_PTR untuk mereferensikan data. Arti dari nilai ini ditentukan oleh aplikasi panggilan. Nilai ini diteruskan ke prosedur subkelas dalam parameter dwRefData. DwRefData yang berbeda dikaitkan dengan setiap kombinasi handel jendela, prosedur subkelas, dan uIdSubclass.

Mengembalikan nilai

Jenis: BOOL

TRUE jika panggilan balik subkelas berhasil diinstal; jika tidak, FALSE.

Keterangan

Panggilan balik subkelas diidentifikasi oleh kombinasi alamat panggilan balik dan ID subkelas yang ditentukan pemanggil. Jika alamat panggilan balik dan pasangan ID belum diinstal, maka fungsi ini menginstal subkelas. Jika pasangan telah diinstal, maka fungsi ini hanya memperbarui data referensi.

Setiap panggilan balik dapat menyimpan satu DWORD_PTR data referensi, yang diteruskan ke fungsi panggilan balik ketika dipanggil untuk memfilter pesan. Tidak ada penghitungan referensi yang dilakukan untuk panggilan balik; ini dapat berulang kali memanggil SetWindowSubclass untuk mengubah nilai elemen data referensinya.

Peringatan Anda tidak dapat menggunakan fungsi pembantu subkelas untuk subkelas jendela di seluruh utas.
 

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Target Platform Windows
Header commctrl.h
Pustaka Comctl32.lib
DLL Comctl32.dll (versi 5.8 atau yang lebih baru)
Set API ext-ms-win-shell-comctl32-window-l1-1-0 (diperkenalkan dalam Windows 10, versi 10.0.14393)

Lihat juga

DefSubclassProc

GetWindowSubclass

RemoveWindowSubclass