Bagikan melalui


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 CMessageMapkelas -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 CMessageMapkelas -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