Makro Kelas Jendela
Makro ini menentukan utilitas kelas jendela.
Nama | Deskripsi |
---|---|
DECLARE_WND_CLASS | Memungkinkan Anda menentukan nama kelas jendela baru. |
DECLARE_WND_CLASS2 | (Visual Studio 2017) Memungkinkan Anda menentukan nama kelas jendela baru dan kelas penutup yang prosedur jendelanya akan digunakan kelas baru. |
DECLARE_WND_SUPERCLASS | Memungkinkan Anda menentukan nama kelas jendela yang ada di mana kelas jendela baru akan didasarkan. |
DECLARE_WND_CLASS_EX | Memungkinkan Anda menentukan parameter kelas. |
Header: atlwin.h
Memungkinkan Anda menentukan nama kelas jendela baru. Tempatkan makro ini di kelas kontrol kontrol ATL ActiveX.
DECLARE_WND_CLASS( WndClassName )
WndClassName
[di] Nama kelas jendela baru. Jika NULL, ATL akan menghasilkan nama kelas jendela.
Jika Anda menggunakan opsi pengkompilasi /permisif, maka DECLARE_WND_CLASS akan menyebabkan kesalahan kompilator; gunakan DECLARE_WND_CLASS2 sebagai gantinya.
DECLARE_WND_CLASS memungkinkan Anda menentukan nama kelas jendela baru yang informasinya akan dikelola oleh CWndClassInfo. DECLARE_WND_CLASS mendefinisikan kelas jendela baru dengan menerapkan fungsi statis berikut:
static CWndClassInfo& GetWndClassInfo();
DECLARE_WND_CLASS menentukan gaya berikut untuk jendela baru:
CS_HREDRAW
CS_VREDRAW
CS_DBLCLKS
DECLARE_WND_CLASS juga menentukan warna latar belakang jendela default. Gunakan makro DECLARE_WND_CLASS_EX untuk menyediakan gaya dan warna latar belakang Anda sendiri.
CWindowImpl menggunakan makro DECLARE_WND_CLASS untuk membuat jendela berdasarkan kelas jendela baru. Untuk mengambil alih perilaku ini, gunakan makro DECLARE_WND_SUPERCLASS , atau berikan implementasi Anda sendiri dari fungsi GetWndClassInfo .
Untuk informasi selengkapnya tentang menggunakan jendela di ATL, lihat artikel Atl Window Classes.
(Visual Studio 2017) Mirip dengan DECLARE_WND_CLASS, tetapi dengan parameter tambahan yang menghindari kesalahan nama dependen saat mengkompilasi dengan opsi /permissive- .
DECLARE_WND_CLASS2( WndClassName, EnclosingClass )
WndClassName
[di] Nama kelas jendela baru. Jika NULL, ATL akan menghasilkan nama kelas jendela.
EnclosingClass
[di] Nama kelas jendela yang mengapit kelas jendela baru. Tidak boleh NULL.
Jika Anda menggunakan opsi /permisif- , maka DECLARE_WND_CLASS akan menyebabkan kesalahan kompilasi karena berisi nama dependen. DECLARE_WND_CLASS2 mengharuskan Anda untuk secara eksplisit memberi nama kelas tempat makro ini digunakan dan tidak menyebabkan kesalahan di bawah bendera /permisif- . Jika tidak, makro ini identik dengan DECLARE_WND_CLASS.
Memungkinkan Anda menentukan parameter kelas. Tempatkan makro ini di kelas kontrol kontrol ATL ActiveX.
DECLARE_WND_SUPERCLASS( WndClassName, OrigWndClassName )
WndClassName
[di] Nama kelas jendela yang akan superclass OrigWndClassName. Jika NULL, ATL akan menghasilkan nama kelas jendela.
OrigWndClassName
[di] Nama kelas jendela yang ada.
Makro ini memungkinkan Anda menentukan nama kelas jendela yang akan superclass kelas jendela yang ada. CWndClassInfo mengelola informasi superclass.
DECLARE_WND_SUPERCLASS mengimplementasikan fungsi statis berikut:
static CWndClassInfo& GetWndClassInfo();
Secara default, CWindowImpl menggunakan makro DECLARE_WND_CLASS untuk membuat jendela berdasarkan kelas jendela baru. Dengan menentukan makro DECLARE_WND_SUPERCLASS di CWindowImpl
kelas -turunan, kelas jendela akan didasarkan pada kelas yang ada tetapi akan menggunakan prosedur jendela Anda. Teknik ini disebut superclassing.
Selain menggunakan makro DECLARE_WND_CLASS dan DECLARE_WND_SUPERCLASS, Anda dapat mengambil alih fungsi GetWndClassInfo dengan implementasi Anda sendiri.
Untuk informasi selengkapnya tentang menggunakan jendela di ATL, lihat artikel Atl Window Classes.
Memungkinkan Anda menentukan nama kelas jendela yang ada di mana kelas jendela baru akan didasarkan. Tempatkan makro ini di kelas kontrol kontrol ATL ActiveX.
DECLARE_WND_CLASS_EX( WndClassName, style, bkgnd )
WndClassName
[di] Nama kelas jendela baru. Jika NULL, ATL akan menghasilkan nama kelas jendela.
gaya
[di] Gaya jendela.
bkgnd
[di] Warna latar belakang jendela.
Makro ini memungkinkan Anda menentukan parameter kelas kelas jendela baru, yang informasinya akan dikelola oleh CWndClassInfo. DECLARE_WND_CLASS_EX mendefinisikan kelas jendela baru dengan menerapkan fungsi statis berikut:
static CWndClassInfo& GetWndClassInfo();
Jika Anda ingin menggunakan gaya default dan warna latar belakang, gunakan makro DECLARE_WND_CLASS . Untuk informasi selengkapnya tentang menggunakan jendela di ATL, lihat artikel Atl Window Classes.