afx_msg BOOL OnDSCNotify (DSCSTATE nState, DSCREASON nReason, BOOL pBool );
Значення, яке повертається
Повертає TRUE , якщо операція nReason та nState було зроблено. Інакше, повертає брехня.
Параметри
nState
Один іменований константи у DSCSTATE Лічильник вказує, яких перелічено в розділі зауваження.
nReason
Один іменований константи у DSCREASON Лічильник вказує, яких перелічено в розділі зауваження.
pBool
Булеві відповідь про те, чи слід продовжити операцію, nState та nReason.
Зауваження
Це сповіщення раковина називається у відповідь на подію, що джерело даних контролю пожежі, коли елемент керування, до якого прив'язано елемент керування джерела даних змінює або спробах змінити основний курсор. Використовувати його для трепінгу причин (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; Члени класу | Ієрархічна діаграма
Дивіться також CWnd::GetDSCCursor, CWnd::BindDefaultProperty, CWnd::BindProperty