เมื่อใดก็ ตามตัวควบคุมความปรารถนาเพื่อแจ้งให้ทราบของคอนเทนเนอร์ที่กระทำบางอย่าง (ที่ถูกกำหนด โดยนักพัฒนาตัวควบคุม) เกิดขึ้น (เช่นการกดแป้นพิมพ์ เมาส์คลิก หรือมีการเปลี่ยนแปลงสถานะของตัวควบคุม) เรียกฟังก์ชันการเหตุการณ์เผา ฟังก์ชันนี้จะแจ้งให้ทราบในคอนเทนเนอร์ควบคุมที่กระทำสิ่งสำคัญบางอย่างเกิดขึ้น โดย firing เหตุการณ์ที่เกี่ยวข้อง?
ไลบรารี Microsoft Foundation Class เสนอแบบจำลองการเขียนโปรแกรมที่ปรับให้เหมาะสมสำหรับ firing เหตุการณ์ ในแบบจำลองนี้ "เหตุการณ์แผนที่" จะใช้ในการกำหนดฟังก์ชันที่ไฟซึ่งเหตุการณ์สำหรับตัวควบคุมเฉพาะ เหตุการณ์แผนที่ประกอบด้วยแมโคหนึ่งสำหรับแต่ละเหตุการณ์ ตัวอย่าง การแมปของเหตุการณ์ที่ fires เหตุการณ์ Click หุ้นอาจมีลักษณะดังนี้:
BEGIN_EVENT_MAP (CSampleCtrl, COleControl)
//{{AFX_EVENT_MAP(CSampleCtrl)
EVENT_STOCK_CLICK ()
//}}AFX_EVENT_MAP
END_EVENT_MAP()
แมโคEVENT_STOCK_CLICKบ่งชี้ว่า ตัวควบคุมจะไฟเป็นหุ้นคลิกเหตุการณ์ทุกครั้งที่มีการตรวจพบคลิกเมาส์ สำหรับรายการของเหตุการณ์อื่น ๆ หุ้นรายละเอียดเพิ่มเติม ให้ดูบทความ ตัวควบคุม ActiveX: เหตุการณ์ในVisual c ++ Programmer's Guide นอกจากนี้มีแมโครเพื่อบ่งชี้ถึงเหตุการณ์แบบกำหนดเอง?
แม้ว่าเหตุการณ์แผนที่แมโครที่มีความสำคัญ คุณมักจะไม่แทรกเหล่านั้นโดยตรง นี่เป็น เพราะ ClassWizard จะสร้างเหตุการณ์แผนผังรายการในแฟ้มต้นฉบับของคุณเมื่อคุณใช้การเชื่อมโยงเหตุการณ์เผาฟังก์ชันกับเหตุการณ์ ตลอดเวลาที่คุณต้องการแก้ไข หรือเพิ่มรายการเหตุการณ์แผนที่ คุณสามารถใช้ ClassWizard?
เพื่อรองรับเหตุการณ์แผนที่ MFC มีแมโครการต่อไปนี้:
ประกาศแผนผังของเหตุการณ์และพรมแดน
| DECLARE_EVENT_MAP | ประกาศว่า แผนที่ที่เหตุการณ์จะใช้ในห้องให้แมปเหตุการณ์เหตุการณ์เผาฟังก์ชัน (ต้องใช้ในการประกาศคลาส)? |
| BEGIN_EVENT_MAP | เริ่มต้นการกำหนดแผนผังของเหตุการณ์การ (ต้องใช้ในการใช้งานคลาส)? |
| END_EVENT_MAP | สิ้นสุดคำจำกัดความของการแมปเหตุการณ์ (ต้องใช้ในการใช้งานคลาส)? |
เหตุการณ์การแมปแมโคร
| EVENT_CUSTOM | บ่งชี้ว่า ฟังก์ชันใดเหตุการณ์เผาจะดำเนินการเหตุการณ์ที่ระบุ? |
| EVENT_CUSTOM_ID | บ่งชี้ว่า ฟังก์ชันใดเหตุการณ์เผาจะดำเนินการเหตุการณ์ที่ระบุ ด้วย ID การสรุปข้อมูลที่กำหนดไว้? |
แมโครในการแมปข้อความ
| ON_OLEVERB | บ่งชี้ว่า คำกริยาแบบกำหนดเองที่จัดการ โดยตัวควบคุม OLE? |
| ON_STDOLEVERB | แทนการแมปกริยามาตรฐานของคอนโทรล OLE? |