afx_msg BOOL OnDSCNotify (DSCSTATE nState, DSCREASON nReason, BOOL pBool );
ส่งกลับค่า
ส่งกลับค่าTRUEถ้าการดำเนินการแทน โดยnReasonและnStateถูกจัดการ มิฉะนั้น ส่งกลับค่าเป็น FALSE?
พารามิเตอร์
nState
ค่าตั้งชื่อคงพบในตัวแจงนับDSCSTATEซึ่งอยู่ภายใต้ข้อสังเกตหนึ่ง?
nReason
ค่าตั้งชื่อคงพบในตัวแจงนับDSCREASONซึ่งอยู่ภายใต้ข้อสังเกตหนึ่ง?
pBool
คำตอบแบบบูลีที่บ่งชี้ว่า ควรดำเนินการดำเนินการแทน โดยnStateและnReason?
หมายเหตุ
การแจ้งเตือนของอ่างนี้เรียกว่าในการตอบสนองต่อเหตุการณ์ที่ตัวควบคุมแหล่งข้อมูล fires เมื่อตัวควบคุมถูกผูกตัวควบคุมแหล่งข้อมูลปรับเปลี่ยน หรือความพยายามที่จะปรับเปลี่ยนเคอร์เซอร์เป็นต้น ใช้มันเพื่อดักจับสาเหตุ (nReason) และอเมริกา (nState) สร้างขึ้น โดยตัวควบคุมแหล่งข้อมูล ชุดทั้งหมดของอเมริกาและสาเหตุที่ได้รับอนุญาต โดยค่าเริ่มต้น เขียนโค้ดของคุณในการทดสอบอเมริกาและสาเหตุที่สำคัญสำหรับโปรแกรมประยุกต์ของคุณ และส่งกลับค่าTRUEหรือFALSEตามความเหมาะสม?
การใช้OnDSCNotifyประกาศแผนที่อ่างและตัวจัดการสำหรับการแจ้งเตือนของอ่างในส่วนหัวของชั้นที่ต้องการได้รับการแจ้งเตือนของอ่างเป็นดังนี้:
คลา CMyDlg: CDialog สาธารณะ
{
...
DECLARE_EVENTSINK_MAP()
BOOL OnDSCNotify(DSCSTATE nState,
DSCREASON nReason, BOOL * pBool);
...
}
แล้ว ในการใช้งานของคลาส กำหนดแผนที่อ่าง และระบุฟังก์ชันการรับเหตุการณ์เป็นดังนี้:
BEGIN_EVENTSINK_MAP (CMyDlg, CDialog)
ON_DSCNOTIFY (CMyDlg, IDC_RDCCTRL1, OnDSCNotify)
END_EVENTSINK_MAP()
เรียกกลับฟังก์ชันการแจ้งเตือนOnDSCNotifyงานของคุณจะถูกเรียกเมื่อมีเหตุการณ์ต่อไปนี้เกิดขึ้นภายในตัวควบคุมแหล่งข้อมูล:
enum DSCREASON
{
dscNoReason = 0
dscClose, dscCommit, dscDelete
dscEdit, dscInsert, dscModify, dscMove
}
มันจะยังเรียกหลายครั้งสำหรับแต่ละสถานะต่อไปนี้:
enum DSCSTATE
{
dscNoState = 0
dscOKToDo
dscCancelled
dscSyncBefore
dscAboutToDo
dscFailedToDo
dscSyncAfter
dscDidEvent
}
การโทรหลายอนุญาตให้คุณเพื่อดักจับเหตุการณ์ในช่วงเวลาที่แตกต่างกัน ตัวอย่างเช่น ตั้งแต่สร้างเหตุการณ์ปกติขึ้นตอบสนองต่อการปรับเปลี่ยนสถานะเคอร์เซอร์ โดยตัวควบคุม สิ่งแรกที่จะทำตัวควบคุมแหล่งข้อมูลคือการ ปล่อยเหตุการณ์ที่ถามว่า ถ้า มันจะถูกดำเนินการที่กระทำ จริง ๆ เพราะเหตุผลสำหรับสถานะdscOKToDo ถ้าไคลเอนต์ทั้งหมดที่ตรวจสอบเหตุการณ์ (ตัวควบคุมข้อมูล การประยุกต์ และอื่น ๆ) รับเหตุการณ์ ตัวควบคุมแหล่งข้อมูลแล้วจะย้ายเข้าสู่สถานะdscSyncBeforeเวลาที่ข้อมูลค้างชำระทั้งหมดจะสามารถล้างข้อมูล ถ้าจำเป็น ตัวอย่างเช่น ถ้ามีการเปลี่ยนแปลงเนื้อหาของเขตข้อมูลแก้ไข การเปลี่ยนแปลงจะมุ่งมั่นที่จะเคอร์เซอร์ ต่อเหตุการณ์นี้ ตัวควบคุมแหล่งข้อมูลย้ายลงในอเมริกาdscAboutToDoและdscSyncAfterและสุดท้ายเข้าสู่สถานะdscDidEvent เหล่านี้ให้คุณ มีโอกาสเพิ่มเติมเพื่อรับการแจ้งเตือนจากตัวควบคุมแหล่งข้อมูล?
ภาพรวม CWnd |nbsp สมาชิกของคลาส| แผนภูมิของลำดับชั้น(&N)
ดูเพิ่มเติมnbspCWnd::GetDSCCursor, CWnd::BindDefaultProperty, CWnd::BindProperty(&N)