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 แมโครและฟังก์ชันที่ส่วนกลาง
ดูเพิ่มเติม