afx_msg BOOL OnDSCNotify (DSCSTATE nState, DSCREASON nReason, BOOL pBool );
Valor de retorno
Retorna TRUE se a operação representada por nReason e nState foi tratada. Caso contrário, retorna FALSE.
Parâmetros
nState
Uma das constantes nomeadas encontrados no enumerador DSCSTATE , que estão indicadas nas observações.
nReason
Uma das constantes nomeadas encontrados no enumerador DSCREASON , que estão indicadas nas observações.
pBool
Uma resposta booleana indicando se deve continuar a operação representada por nState e nReason.
Observações
Esta notificação de coletor é chamada em resposta a um evento que um controle de fonte de dados é acionado quando um controle para o qual o controle de fonte de dados é vinculado modifica ou tenta modificar o cursor subjacente. Usá-lo para interceptar razões (nReason) e Estados (nState) gerados por um controle de fonte de dados. Todas as combinações de Estados-Membros e razões são permitidas por padrão. Escreva seu código para testar os Estados e as razões que são importantes para o seu aplicativo e retornam TRUE ou FALSE conforme apropriado.
Para usar OnDSCNotify, declare um mapa do coletor e um manipulador para a notificação de coletor no cabeçalho da classe que pretende receber a notificação de coletor como segue:
classe CMyDlg: público CDialog
{
...
DECLARE_EVENTSINK_MAP()
BOOL OnDSCNotify(DSCSTATE nState,
DSCREASON nReason, BOOL * pBool);
...
}
Em seguida, na implementação de sua classe, definir o mapa de coletor e especifique a função para receber os eventos da seguinte forma:
BEGIN_EVENTSINK_MAP (CMyDlg, CDialog)
ON_DSCNOTIFY (CMyDlg, IDC_RDCCTRL1, OnDSCNotify)
END_EVENTSINK_MAP()
A função callback notificação, sua implementação de OnDSCNotify, será chamada quando os seguintes eventos ocorrem dentro do controle de fonte de dados:
enum DSCREASON
{
dscNoReason = 0,
dscClose, dscCommit, dscDelete,
dscEdit, dscInsert, dscModify, dscMove
}
Ele também será chamado várias vezes para cada um dos seguintes Estados:
enum DSCSTATE
{
dscNoState = 0,
dscOKToDo,
dscCancelled,
dscSyncBefore,
dscAboutToDo,
dscFailedToDo,
dscSyncAfter,
dscDidEvent
}
Múltiplo chamadas permitem que você aplicar trapping a um evento em momentos diferentes. Por exemplo, uma vez que eventos são geralmente gerados em resposta à modificação do Estado de cursor por um controle, a primeira coisa que irá fazer o controle de fonte de dados é acionar eventos perguntando se está tudo bem para realmente executar essa ação; Daí a razão para o estado de dscOKToDo . Se todos os clientes que monitoram o evento (o Controlarar de dados, seu aplicativo e assim por diante) aceitam o evento, o controle de fonte de dados, em seguida, passarão para o estado de dscSyncBefore , no momento em que todos os pendentes dados serão liberados, se necessário. Por exemplo, se o conteúdo de um campo de edição foi alterado, a alteração será comprometida com o cursor. Após este evento, o controle de fonte de dados move-se para os Estados de dscAboutToDo e dscSyncAfter e finalmente para o estado de dscDidEvent . Esses recursos fornecem mais oportunidades para capturar as notificações de Controlarar de fonte de dados.
|&Nbsp CWnd visão geral ; Membros de classe | Gráfico de hierarquia
Co&nsulte tambémnbsp;CWnd::GetDSCCursor, CWnd::BindDefaultProperty, CWnd::BindProperty