Kelas CMessageMap
Kelas ini memungkinkan peta pesan objek untuk diakses oleh objek lain.
Penting
Kelas ini dan anggotanya tidak dapat digunakan dalam aplikasi yang dijalankan di Windows Runtime.
Sintaks
class ATL_NO_VTABLE CMessageMap
Anggota
Metode Publik
Nama | Deskripsi |
---|---|
CMessageMap::P rocessWindowMessage | Mengakses peta pesan di CMessageMap kelas -turunan. |
Keterangan
CMessageMap
adalah kelas dasar abstrak yang memungkinkan peta pesan objek diakses oleh objek lain. Agar objek dapat mengekspos peta pesannya, kelasnya harus berasal dari CMessageMap
.
ATL menggunakan CMessageMap
untuk mendukung jendela mandiri dan rantai peta pesan dinamis. Misalnya, kelas apa pun yang berisi objek CContainedWindow harus berasal dari CMessageMap
. Kode berikut diambil dari sampel SUBEDIT . Melalui CComControl, CAtlEdit
kelas secara otomatis berasal dari CMessageMap
.
class ATL_NO_VTABLE CAtlEdit :
OtherInheritedClasses
public CComControl<CAtlEdit>
// CComControl derives from CWindowImpl, which derives from CMessageMap
{
public:
// Declare a contained window data member
CContainedWindow m_ctlEdit;
// Initialize the contained window:
// 1. Pass "Edit" to specify that the contained
// window should be based on the standard
// Windows Edit box
// 2. Pass 'this' pointer to specify that CAtlEdit
// contains the message map to be used for the
// contained window's message processing
// 3. Pass the identifier of the message map. '1'
// identifies the alternate message map declared
// with ALT_MSG_MAP(1)
CAtlEdit()
: m_ctlEdit(_T("Edit"), this, 1)
{
m_bWindowOnly = TRUE;
}
// Declare the default message map, identified by '0'
BEGIN_MSG_MAP(CAtlEdit)
MESSAGE_HANDLER(WM_CREATE, OnCreate)
MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus)
CHAIN_MSG_MAP(CComControl<CAtlEdit>)
// Declare an alternate message map, identified by '1'
ALT_MSG_MAP(1)
MESSAGE_HANDLER(WM_CHAR, OnChar)
END_MSG_MAP()
Karena jendela yang terkandung, m_EditCtrl
, akan menggunakan peta pesan di kelas yang berisi, CAtlEdit
berasal dari CMessageMap
.
Untuk informasi selengkapnya tentang peta pesan, lihat Peta Pesan di artikel "Kelas Jendela ATL."
Persyaratan
Header: atlwin.h
CMessageMap::P rocessWindowMessage
Mengakses peta pesan yang diidentifikasi oleh dwMsgMapID di CMessageMap
kelas -turunan.
virtual BOOL ProcessWindowMessage(
HWND hWnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam,
LRESULT& lResult,
DWORD dwMsgMapID) = 0;
Parameter
hWnd
[di] Handel ke jendela yang menerima pesan.
uMsg
[di] Pesan yang dikirim ke jendela.
wParam
[di] Informasi khusus pesan tambahan.
lParam
[di] Informasi khusus pesan tambahan.
lResult
[out] Hasil pemrosesan pesan.
dwMsgMapID
[di] Pengidentifikasi peta pesan yang akan memproses pesan. Peta pesan default, dideklarasikan dengan BEGIN_MSG_MAP, diidentifikasi oleh 0. Peta pesan alternatif, dideklarasikan dengan ALT_MSG_MAP(msgMapID), diidentifikasi oleh msgMapID
.
Tampilkan Nilai
TRUE jika pesan ditangani sepenuhnya; jika tidak, FALSE.
Keterangan
Dipanggil oleh prosedur jendela objek CContainedWindow atau objek yang secara dinamis menautkan ke peta pesan.
Lihat juga
Kelas CDynamicChain
BEGIN_MSG_MAP
ALT_MSG_MAP(msgMapID)
Gambaran Umum Kelas