CWnd::OnDSCNotify

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

Index