Aracılığıyla paylaş


BEGIN_MSG_MAP

Varsayılan ileti eşleme başlangıcını işaret eder.

BEGIN_MSG_MAP( theClass )

Parametreler

  • theClass
    [in] İleti eşleme içeren sınıf adı.

Notlar

CWindowImpl::WindowProc varsayılan ileti haritası penceresi gönderilen iletileri işlemek için kullanır.İleti eşleme iletileri uygun işleyici işlevi veya başka bir ileti eşleme için yönlendirir.

Aşağıdaki makro bir ileti için bir işleyici işlevi eşleyin.Bu işlev tanımlanmalıdır theClass.

Makro

Description

MESSAGE_HANDLER

Windows ileti işleyicisi işlevi için eşleştirir.

MESSAGE_RANGE_HANDLER

Bitişik olan Windows iletilerini bir işleyici işlevi eşleştirir.

COMMAND_HANDLER

Haritalar bir wm_command bildirim kodu ve menü öğesi, Denetim veya Hızlandırıcı tanımlayıcısını temel alarak bir işleyici işlevi ileti.

COMMAND_ID_HANDLER

Haritalar bir wm_command menü öğesi, Denetim veya Hızlandırıcı tanımlayıcısını temel alarak bir işleyici işlevi ileti.

COMMAND_CODE_HANDLER

Haritalar bir wm_command bildirim kodu göre bir işleyici işlevi ileti.

COMMAND_RANGE_HANDLER

Bitişik bir dizi eşler wm_command iletiler için bir işleyici işlevi temel menü öğesi, Denetim veya Hızlandırıcı tanıtıcısı.

NOTIFY_HANDLER

Haritalar bir WM_NOTIFY bildirim kodu ve denetimin tanımlayıcısını temel alarak bir işleyici işlevi ileti.

NOTIFY_ID_HANDLER

Haritalar bir WM_NOTIFY denetim tanımlayıcısını temel alarak bir işleyici işlevi ileti.

NOTIFY_CODE_HANDLER

Haritalar bir WM_NOTIFY bildirim kodu göre bir işleyici işlevi ileti.

NOTIFY_RANGE_HANDLER

Bitişik bir dizi eşler WM_NOTIFY iletiler için bir işleyici işlevi denetimin tanımlayıcısını temel alarak.

Aşağıdaki makroları başka bir ileti eşleme iletileri doğrudan.Bu işlem "zincirleme" denir.

Makro

Description

CHAIN_MSG_MAP

Varsayılan ileti zincirlerini base sınıfında eşleyin.

CHAIN_MSG_MAP_MEMBER

Varsayılan ileti zincirlerini veri sınıfının üyesi eşleyin.

CHAIN_MSG_MAP_ALT

Diğer ileti zincirlerini base sınıfında eşleyin.

CHAIN_MSG_MAP_ALT_MEMBER

Diğer ileti zincirlerini veri sınıfının üyesi eşleyin.

CHAIN_MSG_MAP_DYNAMIC

Varsayılan ileti zincirlerini başka bir sınıfta çalışma zamanında eşleyin.

Aşağıdaki makroları ana penceresinden "değişiklikler" iletileri doğrudan.Örneğin, bir denetimi normalde bildirim iletileri için kendi üst pencere işleme gönderir ancak üst pencere ileti denetimi yansıtabilir.

Makro

Description

REFLECTED_COMMAND_HANDLER

Bir yansıyan eşler wm_command bildirim kodu ve menü öğesi, Denetim veya Hızlandırıcı tanımlayıcısını temel alarak bir işleyici işlevi ileti.

REFLECTED_COMMAND_ID_HANDLER

Bir yansıyan eşler wm_command menü öğesi, Denetim veya Hızlandırıcı tanımlayıcısını temel alarak bir işleyici işlevi ileti.

REFLECTED_COMMAND_CODE_HANDLER

Bir yansıyan eşler wm_command bildirim kodu göre bir işleyici işlevi ileti.

REFLECTED_COMMAND_RANGE_HANDLER

Bir yansıyan eşler wm_command bir denetim tanımlayıcıları bitişik aralığını esas alarak bir işleyici işlevi ileti.

REFLECTED_COMMAND_RANGE_CODE_HANDLER

Bir yansıyan eşler wm_command bildirim kodu ve Denetim tanımlayıcıları bitişik aralığını temel alan bir işleyici işlevi ileti.

REFLECTED_NOTIFY_HANDLER

Bir yansıyan eşler WM_NOTIFY bildirim kodu ve denetimin tanımlayıcısını temel alarak bir işleyici işlevi ileti.

REFLECTED_NOTIFY_ID_HANDLER

Bir yansıyan eşler WM_NOTIFY denetim tanımlayıcısını temel alarak bir işleyici işlevi ileti.

REFLECTED_NOTIFY_CODE_HANDLER

Bir yansıyan eşler WM_NOTIFY bildirim kodu göre bir işleyici işlevi ileti.

REFLECTED_NOTIFY_RANGE_HANDLER

Bir yansıyan eşler WM_NOTIFY bir denetim tanımlayıcıları bitişik aralığını esas alarak bir işleyici işlevi ileti.

REFLECTED_NOTIFY_RANGE_CODE_HANDLER

Bir yansıyan eşler WM_NOTIFY bildirim kodu ve Denetim tanımlayıcıları bitişik aralığını temel alan bir işleyici işlevi ileti.

Örnek

class CMyExtWindow : public CMyBaseWindow
{
public:
   BEGIN_MSG_MAP(CMyExtWindow)
      MESSAGE_HANDLER(WM_PAINT, OnPaint)
      MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus)
      CHAIN_MSG_MAP(CMyBaseWindow)
   END_MSG_MAP()

   LRESULT OnPaint(UINT /*nMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, 
      BOOL& /*bHandled*/)
   {
      return 0;   
   }

   LRESULT OnSetFocus(UINT /*nMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, 
      BOOL& /*bHandled*/) 
   {
      return 0;   
   }
};

Zaman bir CMyExtWindow nesnesi alır bir WM_PAINT ileti, ileti yönlendirilir CMyExtWindow::OnPaint fiili işlem için.OnPaint İleti gerektirir ilave işlem iletisi gösterir sonra varsayılan ileti eşleme yöneltilen CMyBaseWindow.

Varsayılan ileti eşleme yanı sıra, diğer ileti map ile tanımlayabilirsiniz alt_msg_map.Her zaman bir ileti eşleme ile başlayan BEGIN_MSG_MAP.Daha sonra izleyen diğer ileti eşlemeleri bildirebilirsiniz.Aşağıdaki örnek, varsayılan ileti harita ve her bir işleyici işlevi içeren bir diğer ileti eşleme gösterir:

BEGIN_MSG_MAP(CMyOneAltClass)
   MESSAGE_HANDLER(WM_PAINT, OnPaint)
ALT_MSG_MAP(1)
   MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus)
END_MSG_MAP()

Sonraki örnek, iki farklı ileti eşleme gösterir.Varsayılan ileti eşleme boştur.

BEGIN_MSG_MAP(CMyClass)
ALT_MSG_MAP(1)
   MESSAGE_HANDLER(WM_PAINT, OnPaint)
   MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus)
ALT_MSG_MAP(2)
   MESSAGE_HANDLER(WM_CREATE, OnCreate)
END_MSG_MAP()

end_msg_map makro ileti eşleme sonuna işaretler.Not olduğunu her zaman tek bir örneği BEGIN_MSG_MAP ve END_MSG_MAP.

atl ileti eşlemeleri kullanma hakkında daha fazla bilgi için bkz: İleti eşler.

Gereksinimler

Başlık: atlwin.h

Ayrıca bkz.

Başvuru

CMessageMap sınıfı

CDynamicChain sınıfı

Diğer Kaynaklar

İleti eşleme makrolar (atl)

ATL Makroları