CWnd::OnDSCNotify

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

Index