CWnd::OnDSCNotify

afx_msgBOOL OnDSCNotify (DSCSTATEnState,DSCREASONnReason,,BOOLpBool);

Valeur de retour

Retourne TRUE si l'opération représentée par nReason et nState a été traitée. Sinon, retourne FALSE.

Paramètres

nState

Une des constantes nommées dans l'énumérateur DSCSTATE , qui figurent sous les remarques.

nReason

Une des constantes nommées dans l'énumérateur DSCREASON , qui figurent sous les remarques.

pBool

Une réponse booléenne indiquant si l'opération représentée par nState et nReason doit continuer.

Remarques

Cette notification d'évier est appelée en réponse à un événement qui se déclenche à un contrôle de source de données lorsqu'un contrôle auquel est lié le contrôle de source de données modifie ou tente de modifier le curseur sous-jacent. Utilisez-le pour piéger les motifs (nReason) et des États (nState) générés par un contrôle de source de données. Toutes les combinaisons d'États et de motifs sont autorisés par défaut. Écrivez votre code afin de vérifier les États et les raisons qui sont importants pour votre application et retournent TRUE ou FALSE selon le cas.

Pour utiliser OnDSCNotify, déclarer une carte de l'évier et un gestionnaire d'événements pour la notification de l'évier dans l'en-tête de la classe qui souhaitait recevoir la notification de l'évier comme suit:

class CMyDlg : public CDialog
{
   ...
   DECLARE_EVENTSINK_MAP()
   BOOL OnDSCNotify(DSCSTATE nState,
             DSCREASON nReason, BOOL * pBool) ;
   ...
}

Puis, dans la mise en œuvre de votre classe, définir le plan de l'évier et spécifier la fonction de recevoir les événements comme suit:

BEGIN_EVENTSINK_MAP (CMyDlg, CDialog)
   ON_DSCNOTIFY (CMyDlg, IDC_RDCCTRL1, OnDSCNotify)
END_EVENTSINK_MAP()

La fonction de rappel de notification, votre implémentation OnDSCNotify, qui sera appelée lorsque les événements suivants se produisent à l'intérieur du contrôle de source de données:

enum DSCREASON
{
   dscNoReason = 0,
   dscClose, dscCommit, dscDelete,
   dscEdit, dscInsert, dscModify, dscMove
}

Elle sera également appelée plusieurs fois pour chacun des États suivants:

enum DSCSTATE
{
   dscNoState = 0,
   dscOKToDo,
   dscCancelled,
   dscSyncBefore,
   dscAboutToDo,
   dscFailedToDo,
   dscSyncAfter,
   dscDidEvent
}

Les appels multiples vous permettent de capturer un événement à des moments différents. Par exemple, puisque les événements sont habituellement générés en réponse aux modifications de l'État du curseur par un contrôle, la première chose que fera le contrôle de source de données est de tirer des événements demandant s'il est permis de réellement effectuer cette action ; d'où la raison de l'état de dscOKToDo . Si tous les clients qui ont suivi l'événement (le contrôle de données, votre application et ainsi de suite) acceptent l'événement, le contrôle de source de données se déplace ensuite dans l'état de dscSyncBefore , date à laquelle toutes les données de circulation vont être vidées, si nécessaire. Par exemple, si le contenu d'un champ edit a changé, le changement sera engagé pour le curseur. Après cet événement, le contrôle de source de données se déplace dans les États dscAboutToDo et dscSyncAfter et enfin dans l'état de dscDidEvent . Ces vous offrent davantage de possibilités d'attraper des notifications du contrôle de source de données.

Aperçu de CWnd |nbsp ; Membres de la classe | Graphique de la hiérarchie

Voir aussi  ;CWnd::GetDSCCursor, CWnd::BindDefaultProperty, CWnd::BindProperty

Index