afx_msg BOOL OnDSCNotify (DSCSTATE nState, DSCREASON nReason, BOOL pBool );
Rückgabewert
Gibt TRUE zurück, wenn der Vorgang dargestellt durch nReason und nState behandelt wurde. Andernfalls gibt FALSE zurück.
Parameter
nState
Eine der benannten Konstanten gefunden in den DSCSTATE -Enumerator, die unter Bemerkungen aufgeführt sind.
nReason
Eine der benannten Konstanten gefunden in den DSCREASON -Enumerator, die unter Bemerkungen aufgeführt sind.
pBool
Ein Boolean, der angibt, ob die Prozessbevollmächtigte nState und nReason Operation fortgesetzt werden sollte Antwort.
Bemerkungen
Diese Senke Benachrichtigung wird als Reaktion auf ein Ereignis aufgerufen, die ein Datenquellen-Steuerelement ausgelöst wird, wenn ein Steuerelement an das Datenquellen Steuerelement gebunden ist, ändert oder versucht, den zugrunde liegende Cursor ändern. Verwenden Sie es um Gründe (nReason) und Staaten (nState) generiert, indem ein Datenquellen-Steuerelement aufzufangen. Alle Kombinationen von Staaten und Gründe sind standardmäßig zulässig. Schreiben Sie Code zum Testen der Staaten und Gründe, die für Ihre Anwendung wichtig sind und als geeignete TRUE oder FALSE zurückgeben.
Um OnDSCNotifyzu verwenden, deklarieren Sie eine Senke-Karte und einen Handler für die Senke Benachrichtigung in der Kopfzeile der Klasse, die die Senke Benachrichtigung wie folgt erhalten möchte:
cMyDlg-Klasse: public CDialog
{
...
DECLARE_EVENTSINK_MAP()
BOOL OnDSCNotify(DSCSTATE nState,
DSCREASON nReason, BOOL * pBool);
...
}
Dann, in der Implementierung der Klasse definieren Sie die Senke-Karte und geben Sie die Funktion, die Ereignisse wie folgt zu empfangen:
BEGIN_EVENTSINK_MAP (CMyDlg, CDialog)
ON_DSCNOTIFY (CMyDlg, IDC_RDCCTRL1, OnDSCNotify)
END_EVENTSINK_MAP()
Die Benachrichtigung-Callback-Funktion, die Implementierung von OnDSCNotify, wird aufgerufen, wenn die folgenden Ereignisse in das Datenquelle Steuerelement auftreten:
enum DSCREASON
{
DscNoReason = 0,
DscClose, DscCommit, DscDelete,
DscEdit, DscInsert, DscModify, dscMove
}
Es wird auch mehrfach für jede der folgenden Zustände aufgerufen werden:
enum DSCSTATE
{
DscNoState = 0,
DscOKToDo,
DscCancelled,
DscSyncBefore,
DscAboutToDo,
DscFailedToDo,
DscSyncAfter,
dscDidEvent
}
Mehrere Aufrufe ermöglichen es Ihnen, ein Ereignis zu unterschiedlichen Zeiten zu fangen. Da Ereignisse als Reaktion auf Änderung des Staates Cursor in der Regel von einem Steuerelement generiert werden, ist die erste Sache, die das Datenquellen-Steuerelement beispielsweise Ereignisse gefragt, ob es okay ist, eigentlich die Aktion auszuführen; daher der Grund für den DscOKToDo Zustand. Wenn alle Clients, die das Ereignis (das Steuerelement, Ihre Anwendung und So weiter) überwachen das Ereignis akzeptieren das Datenquelle Steuerelement verschiebt dann in den DscSyncBefore Zustand, werden zu diesem Zeitpunkt alle ausstehende Daten, bei Bedarf geleert. Wenn der Inhalt eines Bearbeitungsfeldes geändert hat, wird die Änderung z. B. den Cursor verpflichtet werden. Nach diesem Ereignis, verschiebt das Datenquellen-Steuerelement in die DscAboutToDo und DscSyncAfter Staaten und schließlich in den DscDidEvent Zustand. Diese bieten Ihnen weitere Möglichkeiten, Benachrichtigungen vom Datenquellen Steuerelement zu fangen.
CWnd Übersicht |nbsp; Member der Klasse | Hierarchiediagramm
Siehe auch&Nbsp;CWnd::GetDSCCursor, CWnd::BindDefaultProperty, CWnd::BindProperty