NOTIFY_HANDLER

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

Index