Aracılığıyla paylaş


CMessageMap Sınıfı

Uyarı

Etkin Şablon Kitaplığı (ATL) desteklenmeye devam eder. Ancak artık özellik eklemeyeceğiz veya belgeleri güncelleştirmeyeceğiz.

Bu sınıf, bir nesnenin ileti eşlemelerinin başka bir nesne tarafından erişmesine izin verir.

Önemli

Bu sınıf ve üyeleri Windows Çalışma Zamanı yürütülen uygulamalarda kullanılamaz.

Sözdizimi

class ATL_NO_VTABLE CMessageMap

Üyeler

Genel Yöntemler

Veri Akışı Adı Açıklama
CMessageMap::P rocessWindowMessage -derived sınıfında bir ileti eşlemesine CMessageMaperişir.

Açıklamalar

CMessageMap , nesnenin ileti eşlemelerine başka bir nesne tarafından erişilmesine olanak tanıyan soyut bir temel sınıftır. Bir nesnenin ileti eşlemelerini kullanıma sunması için sınıfının öğesinden CMessageMaptüretilmesi gerekir.

ATL, kapsanan pencereleri ve dinamik ileti eşleme zincirini desteklemek için kullanır CMessageMap . Örneğin, CContainedWindow nesnesi içeren tüm sınıflardan CMessageMaptüretilmelidir. Aşağıdaki kod SUBEDIT örneğinden alınmıştır. CComControl aracılığıyla CAtlEdit sınıfı otomatik olarak öğesinden CMessageMaptüretilir.

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()

İçerilen pencere olduğundan, m_EditCtrlöğesinden CAtlEdittüretilen, içeren sınıfında CMessageMap bir ileti eşlemesi kullanır.

İleti eşlemeleri hakkında daha fazla bilgi için "ATL Pencere Sınıfları" makalesindeki İleti Eşlemeleri'ne bakın.

Gereksinimler

Üst bilgi: atlwin.h

CMessageMap::P rocessWindowMessage

Türetilmiş bir sınıfta dwMsgMapIDCMessageMaptanımlanan ileti eşlemesine erişir.

virtual BOOL ProcessWindowMessage(
    HWND hWnd,
    UINT uMsg,
    WPARAM wParam,
    LPARAM lParam,
    LRESULT& lResult,
    DWORD dwMsgMapID) = 0;

Parametreler

hWnd
[in] İletiyi alan pencerenin tutamacı.

uMsg
[in] Pencereye gönderilen ileti.

wParam
[in] İletiye özgü ek bilgiler.

lParam
[in] İletiye özgü ek bilgiler.

lResult
[out] İleti işlemenin sonucu.

dwMsgMapID
[in] İletiyi işleyecek ileti eşlemesinin tanımlayıcısı. BEGIN_MSG_MAP ile bildirilen varsayılan ileti eşlemesi 0 ile tanımlanır. ALT_MSG_MAP(msgMapID) ile bildirilen alternatif bir ileti eşlemesi tarafından msgMapIDtanımlanır.

Dönüş Değeri

İleti tam olarak işleniyorsa TRUE; aksi takdirde YANLIŞ.

Açıklamalar

CContainedWindow nesnesinin veya ileti eşlemesine dinamik olarak zincirleyen bir nesnenin pencere yordamı tarafından çağrılır.

Ayrıca bkz.

CDynamicChain Sınıfı
BEGIN_MSG_MAP
ALT_MSG_MAP(msgMapID)
Sınıfa Genel Bakış