afx_msg BOOL OnDSCNotify (DSCSTATE nState, DSCREASON nReason, BOOL pBool );
Valore restituito
Restituisce TRUE se l'operazione rappresentata da nReason e nState è stato gestito. In caso contrario, restituisce FALSE.
Parametri
nState
Una delle costanti denominate trovate nell'enumeratore DSCSTATE , che sono elencate sotto osservazioni.
nReason
Una delle costanti denominate trovate nell'enumeratore DSCREASON , che sono elencate sotto osservazioni.
pBool
Una risposta booleana che indica se deve continuare l'operazione rappresentata da nState e nReason.
Osservazioni
Questa notifica dispersore è chiamata in risposta a un evento che un controllo origine dati viene generato quando un controllo a cui è associato il controllo origine dati modifica o si tenta di modificare il cursore sottostante. Usarlo per intrappolare i motivi (nReason) e gli Stati (nState) generati da un controllo origine dati. Tutte le combinazioni degli Stati e delle ragioni sono consentite per impostazione predefinita. Scrivere il codice per testare gli Stati e le ragioni che sono importanti per l'applicazione e restituiscono TRUE o FALSE come appropriato.
Per utilizzare OnDSCNotify, dichiarare una mappa del sink e un gestore per la notifica di lavello nell'intestazione della classe che si desidera ricevere la notifica di lavello come segue:
classe CMyDlg: CDialog pubblica
{
...
DECLARE_EVENTSINK_MAP()
BOOL OnDSCNotify(DSCSTATE nState,
DSCREASON nReason, BOOL * pBool);
...
}
Poi, nell'implementazione della classe, definire la mappa del sink e specificare la funzione per ricevere gli eventi come segue:
BEGIN_EVENTSINK_MAP (CMyDlg, CDialog)
ON_DSCNOTIFY (CMyDlg, IDC_RDCCTRL1, OnDSCNotify)
END_EVENTSINK_MAP()
La funzione di callback di notifica, l'implementazione di OnDSCNotify, verrà chiamata quando si verificano gli eventi seguenti all'interno del controllo origine dati:
enum DSCREASON
{
dscNoReason = 0,
dscClose, dscCommit, dscDelete,
dscEdit, dscInsert, dscModify, dscMove
}
Sarà anche chiamato più volte per ciascuno dei seguenti stati:
enum DSCSTATE
{
dscNoState = 0,
dscOKToDo,
dscCancelled,
dscSyncBefore,
dscAboutToDo,
dscFailedToDo,
dscSyncAfter,
dscDidEvent
}
Chiamate multiple permettono di intercettare un evento in momenti diversi. Ad esempio, dal momento che gli eventi sono solitamente generati in risposta alla modificazione dello stato cursore da un controllo, la prima cosa che farà il controllo origine dati è a fuoco eventi chiedendo se è OK eseguire effettivamente quell'azione; da qui la ragione di stato dscOKToDo . Se tutti i clienti che monitorare l'evento (il controllo dati, vostra applicazione e così via) accettano l'evento, il controllo origine dati poi si sposta in stato dscSyncBefore , momento in cui tutti i dati eccezionali saranno essere svuotati, se necessario. Ad esempio, se il contenuto di un campo di modifica è cambiato, il cambiamento sarà impegnato al cursore. Dopo questo evento, il controllo origine dati si sposta negli Stati dscAboutToDo e dscSyncAfter e, infine, allo stato di dscDidEvent . Queste fornirvi ulteriori opportunità per catturare le notifiche dal controllo origine dati.
Panoramica di CWnd |nbsp; Membri della classe | Gerarchia Chart
Vedere a&nchenbsp;CWnd::GetDSCCursor, CWnd::BindDefaultProperty, CWnd::BindProperty