afx_msgBOOL OnDSCNotify (DSCSTATEBOOLnState,DSCREASONnReason,pBool);
Возвращаемое значение
Возвращает значение TRUE , если операция, nReason и nState было обработано. В противном случае возвращает значение FALSE.
Параметры
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