NOTIFY_HANDLER ( หมายเลข, cd, func )
พารามิเตอร์
รหัส
[ใน] ตัวระบุของตัวควบคุมที่ส่งข้อความ?
รหัส
[ใน] รหัสการแจ้งเตือน?
func
[ใน] ชื่อของฟังก์ชันตัวจัดการข้อความ?
หมายเหตุ
กำหนดรายการในการแมปข้อความ NOTIFY_HANDLERแผนที่แบบ WM_NOTIFYข้อความไปยังตัวจัดการที่ระบุฟังก์ชัน ตามรหัสการแจ้งเตือนและตัวระบุการควบคุม ตัวอย่างเช่น
คลา CMyClass: ...
{
สาธารณะ:
nbsp ...
BEGIN_MSG_MAP(CMyClass)
NOTIFY_HANDLER (IDC_MYCTL, NM_CLICK, OnClick)
...
END_MSG_MAP()
/ / เมื่อวัตถุ CMyClass ได้รับการ WM_NOTIFY
/ / ข้อความที่ระบุ โดย IDC_MYCTL และ NM_CLICK
/ / ข้อความจะนำไป CMyClass::OnClick
/ / สำหรับการประมวลผลที่แท้จริง
LRESULT OnClick (...)
{ ... }
}(&N)
ต้องกำหนดฟังก์ชันใด ๆ ที่ระบุไว้ในแมโคNOTIFY_HANDLERเป็นดังนี้:
LRESULT NotifyHandler(int idCtrl, LPNMHDR pnmh, BOOLamp; bHandled)(&A)
ชุดการแมปข้อความ bHandled เป็นจริงก่อน NotifyHandler เรียกว่า ถ้า NotifyHandler ไม่ได้เต็มที่จัดการข้อความ คุณควรตั้งค่า bHandled เป็นเท็จเพื่อบ่งชี้ถึงความจำเป็นในการประมวลผลต่อไป?
หมายเหตุnbsp เริ่มต้นการแมปข้อความกับBEGIN_MSG_MAPเสมอ จากนั้นคุณสามารถประกาศข้อความอื่นต่อมาแผนที่ด้วยALT_MSG_MAP แมโคEND_MSG_MAPทำเครื่องหมายสิ้นสุดการแมปข้อความ แผนที่ทุกข้อความต้องมีอินสแตนซ์หนึ่งของBEGIN_MSG_MAPและEND_MSG_MAP(&N)?
นอกจากการNOTIFY_HANDLERคุณสามารถใช้MESSAGE_HANDLERในการแมปข้อความWM_NOTIFYโดยไม่มีการระบุหรือรหัสการ ในกรณีนี้ MESSAGE_HANDLER(WM_NOTIFY, OnHandlerFunction) จะส่งข้อความWM_NOTIFYทั้งหมดไปOnHandlerFunction?
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้แผนที่ของข้อความใน ATL ดูแผนที่ของข้อความในบทความ "ATL หน้าต่างชั้น
ATL แมโครและฟังก์ชันที่ส่วนกลาง
ดูเพิ่มเติม
NOTIFY_ID_HANDLER, NOTIFY_CODE_HANDLER, NOTIFY_RANGE_HANDLER, COMMAND_HANDLER