CMessageMap

คลาส CMessageMap

CMessageMapเป็นฐานคลาที่ช่วยให้ข้อความของวัตถุแผนที่ไปสามารถเข้าถึงวัตถุอื่น เพื่อให้วัตถุเปิดเผยแผนที่ของข้อ คลาสนี้ต้องสืบทอดมาจากCMessageMap?

ATL ใช้CMessageMapเพื่อสนับสนุนที่มีอยู่ windows และการกำหนดสายงานแผนผังข้อความแบบไดนามิก ตัวอย่างเช่น คลาสใด ๆ ที่ประกอบด้วยวัตถุCContainedWindowต้องสืบทอดมาจากCMessageMap รหัสต่อไปนี้จะนำมาจาก SUBEDITอย่าง ผ่านCComControl, CAtlEdit คลาสโดยอัตโนมัติมาจากCMessageMap?

คลา CAtlEdit: สาธารณะ CComControlltCAtlEdit >, ...
               / / CComControl มาจาก CWindowImpl
               / / ซึ่งได้มาจาก CMessageMap
{
สาธารณะ:
   / / ประกาศสมาชิกข้อมูลหน้าต่างที่มีอยู่
   CContainedWindow m_EditCtrl

/ / เตรียมใช้งานหน้าต่างที่มีอยู่:
   // 1. ผ่าน "แก้ไข" เพื่อระบุที่มีที่อยู่ / / หน้าต่างควรยึดมาตรฐาน / / Windows แก้ไขกล่อง
   // 2. ชี้ 'นี้' เพื่อระบุการส่งผ่านที่ CAtlEdit / / ประกอบด้วยแผนที่จะใช้สำหรับข้อความ / / การประมวลผลข้อความของหน้าต่างที่มีอยู่
   // 3. ส่งตัวระบุของแมปข้อความ ใน
   / / กรณีนี้ '1' ระบุการแมปข้อความ
   / / ประกาศพร้อม ALT_MSG_MAP(1)
   CAtlEdit(): m_EditCtrl(_T("EDIT") นี้ 1)
   {
      m_bWindowOnly = TRUE
   }

/ / ประกาศการแมปข้อความเริ่มต้น
   BEGIN_MSG_MAP(CAtlEdit)
      MESSAGE_HANDLER (WM_PAINT, OnPaint)
      ...
   / / ประกาศการแมปข้อความอื่น
   / / ระบุไว้ โดย '1'
   ALT_MSG_MAP(1)
      MESSAGE_HANDLER (WM_CHAR, OnChar)
   END_MSG_MAP()

...
};

เนื่องจากหน้าต่างการมีอยู่ m_EditCtrl จะใช้แผนผังความในชั้นเรียนประกอบด้วย CAtlEdit มาจากCMessageMap?

ดูข้อมูลเพิ่มเติมเกี่ยวกับการแมปข้อความข้อความแผนที่ในบทความ "ATL หน้าต่างชั้น

#รวม lt;atlwin.h>

สมาชิกของคลาส

ดูเพิ่มเติมnbspCDynamicChain, BEGIN_MSG_MAP, ALT_MSG_MAP(&N)

Index