BEGIN_MSG_MAP

BEGIN_MSG_MAP ( theClass )

พารามิเตอร์

theClass

[ใน] ชื่อของระดับชั้นประกอบด้วยการแมปข้อความ?

หมายเหตุ

ทำเครื่องหมายจุดเริ่มต้นของการแมปข้อความเริ่มต้น CWindowImpl::WindowProcใช้แผนที่กระบวนการข้อความที่ส่งไปยังหน้าต่างข้อความเริ่มต้น การแมปข้อความนำข้อความ ไปยังฟังก์ชันการจัดการที่เหมาะสม หรือ การแมปข้อความอื่น?

ต่อไปนี้แมโคแมปข้อความไปยังฟังก์ชันตัวจัดการ ฟังก์ชันนี้ต้องมีกำหนดในtheClass?

แมโคร คำอธิบาย
MESSAGE_HANDLER แมปข้อความ Windows ไปยังฟังก์ชันตัวจัดการ?
MESSAGE_RANGE_HANDLER แมปข้อความอยู่ติดกันช่วงของ Windows ไปยังฟังก์ชันตัวจัดการ?
COMMAND_HANDLER แผนที่WM_COMMANDข้อความไปยังฟังก์ชันตัวจัดการ ตามรหัสการแจ้งเตือนและตัวระบุของรายการเมนู ควบคุม หรือคันเร่ง?
COMMAND_ID_HANDLER แผนที่WM_COMMANDข้อความไปยังฟังก์ชันตัวจัดการ ยึดตัวระบุของรายการเมนู ควบคุม หรือคันเร่ง?
COMMAND_CODE_HANDLER แผนที่WM_COMMANDข้อความไปยังฟังก์ชันตัวจัดการ ตามรหัสการแจ้งเตือน?
COMMAND_RANGE_HANDLER แผนที่ช่วงของข้อความWM_COMMANDต่อเนื่องไปยังฟังก์ชันตัวจัดการ ยึดตัวระบุของรายการเมนู ควบคุม หรือคันเร่ง?
NOTIFY_HANDLER แมปข้อความWM_NOTIFYไปยังฟังก์ชันตัวจัดการ ตามรหัสการแจ้งเตือนและตัวระบุการควบคุม?
NOTIFY_ID_HANDLER แผนที่WM_NOTIFYข้อความไปยังฟังก์ชันตัวจัดการ ตามรหัสควบคุม?
NOTIFY_CODE_HANDLER แผนที่WM_NOTIFYข้อความไปยังฟังก์ชันตัวจัดการ ตามรหัสการแจ้งเตือน?
NOTIFY_RANGE_HANDLER แผนที่ช่วงของข้อความWM_NOTIFYต่อเนื่องไปยังฟังก์ชันตัวจัดการ ตามรหัสควบคุม?

แมโครที่ดังต่อไปนี้โดยตรงเป็นข้อความการแมปข้อความอื่น กระบวนการนี้จะเรียกว่า "กำหนดสายงาน

แมโคร คำอธิบาย
CHAIN_MSG_MAP Chains การแมปข้อความเริ่มต้นในคลาสพื้นฐาน?
CHAIN_MSG_MAP_MEMBER Chains การแมปข้อความเริ่มต้นในข้อมูลสมาชิกของคลาส?
CHAIN_MSG_MAP_ALT Chains การการแมปข้อความอื่นในคลาสพื้นฐาน?
CHAIN_MSG_MAP_ALT_MEMBER Chains ไปกับข้อความอื่นที่แมปในข้อมูลสมาชิกของคลาส?
CHAIN_MSG_MAP_DYNAMIC Chains การแมปข้อความเริ่มต้นในคลาสอื่นในขณะใช้งาน?

ตัวอย่าง

คลา CMyWindow: ...
{
สาธารณะ:
 nbsp ...

BEGIN_MSG_MAP(CMyWindow)
      MESSAGE_HANDLER (WM_PAINT, OnPaint)
      MESSAGE_HANDLER (WM_SETFOCUS, OnSetFocus)
      CHAIN_MSG_MAP(CMyBaseWindow)
   END_MSG_MAP()

LRESULT OnPaint(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
   { ... }

LRESULT OnSetFocus(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
   { ... }
}

เมื่อการ CMyWindow วัตถุได้รับการ WM_PAINT ข้อความ ข้อความจะนำไป CMyWindow::OnPaint สำหรับการประมวลผลที่แท้จริง ถ้า OnPaint บ่งชี้ว่า ข้อความต้องการประมวลผลต่อไป ข้อความจะใช้จาก นั้นจะนำการแมปข้อความเริ่มต้นในCMyBaseWindow?

นอกเหนือจากในการแมปข้อความเริ่มต้น คุณสามารถกำหนดการแมปข้อความอื่นด้วยALT_MSG_MAP เริ่มต้นการแมปข้อความกับBEGIN_MSG_MAPเสมอ แล้วคุณสามารถประกาศข้อความอื่นต่อมาแผนที่ ตัวอย่างต่อไปนี้แสดงการแมปข้อความเริ่มต้นและข้อความสำรองหนึ่งแผนที่ แต่ละที่ประกอบด้วยฟังก์ชันการจัดการหนึ่ง:

BEGIN_MSG_MAP(CMyClass)
 nbsp MESSAGE_HANDLER (WM_PAINT, OnPaint)
ALT_MSG_MAP(&1)
   MESSAGE_HANDLER (WM_SETFOCUS, OnSetFocus)
END_MSG_MAP()

ตัวอย่างถัดไปแสดงสองข้อความทดแทนแผนที่ แผนผังค่าเริ่มต้นข้อความว่างเปล่า?

BEGIN_MSG_MAP(CMyClass)
ALT_MSG_MAP(&1)
 nbsp 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ทำเครื่องหมายสิ้นสุดการแมปข้อความ หมายเหตุว่า เกิดขึ้นได้เสมอเหมือนหนึ่งอินสแตนซ์ของBEGIN_MSG_MAPและEND_MSG_MAP?

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

ATL แมโครและฟังก์ชันที่ส่วนกลาง

ดูเพิ่มเติม

CMessageMap, CDynamicChain

Index