Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Quando um controle OLE incorporado dispara um evento, o contêiner do controle recebe o evento usando um mecanismo, chamado "mapa do coletor de eventos", fornecido pelo MFC. Este mapa de coletor de eventos designa funções de manipulador para cada evento específico, bem como parâmetros desses eventos. Para obter mais informações sobre mapas de coletor de eventos, consulte o artigo Contêineres de controle ActiveX.
Mapas do coletor de eventos
| Nome | Descrição |
|---|---|
| BEGIN_EVENTSINK_MAP | Inicia a definição de um mapa de coletor de eventos. |
| DECLARE_EVENTSINK_MAP | Declara um mapa de coletor de eventos. |
| END_EVENTSINK_MAP | Termina a definição de um mapa de coletor de eventos. |
| ON_EVENT | Define um manipulador de eventos para um evento específico. |
| ON_EVENT_RANGE | Define um manipulador de eventos para um evento específico disparado de um conjunto de controles OLE. |
| ON_EVENT_REFLECT | Recebe eventos disparados pelo controle antes de serem manipulados pelo contêiner do controle. |
| ON_PROPNOTIFY | Define um manipulador para manipular notificações de propriedade de um controle OLE. |
| ON_PROPNOTIFY_RANGE | Define um manipulador para manipular notificações de propriedade de um conjunto de controles OLE. |
| ON_PROPNOTIFY_REFLECT | Recebe notificações de propriedade enviadas pelo controle antes de serem manipuladas pelo contêiner do controle. |
BEGIN_EVENTSINK_MAP
Inicia a definição do seu mapa de coletor de eventos.
BEGIN_EVENTSINK_MAP(theClass, baseClass)
Parâmetros
a Classe
Especifica o nome da classe de controle cujo mapa de coletor de eventos é esse.
Classe base
Especifica o nome da classe base de theClass.
Observações
No arquivo de implementação (.cpp) que define as funções de membro para sua classe, inicie o mapa do coletor de eventos com a macro BEGIN_EVENTSINK_MAP, adicione entradas de macro para cada evento a ser notificado e complete o mapa do coletor de eventos com a macro END_EVENTSINK_MAP.
Para obter mais informações sobre mapas de coletor de eventos e contêineres de controle OLE, consulte o artigo Contêineres de controle ActiveX.
Requerimentos
Cabeçalho afxdisp.h
DECLARE_EVENTSINK_MAP
Um contêiner OLE pode fornecer um mapa de coletor de eventos para especificar os eventos dos quais seu contêiner será notificado.
DECLARE_EVENTSINK_MAP()
Observações
Use a macro DECLARE_EVENTSINK_MAP no final da declaração de classe. Depois, no . CPP que define as funções de membro para a classe, use a macro BEGIN_EVENTSINK_MAP, entradas de macro para cada um dos eventos a serem notificados e a macro END_EVENTSINK_MAP para declarar o fim da lista de coletores de eventos.
Para obter mais informações sobre mapas de coletor de eventos, consulte o artigo Contêineres de controle ActiveX.
Requerimentos
Cabeçalho afxwin.h
END_EVENTSINK_MAP
Termina a definição do seu mapa de coletor de eventos.
END_EVENTSINK_MAP()
Requerimentos
Cabeçalho afxdisp.h
ON_EVENT
Use a macro ON_EVENT para definir uma função de manipulador de eventos para um evento disparado por um controle OLE.
ON_EVENT(theClass, id, dispid, pfnHandler, vtsParams)
Parâmetros
a Classe
A classe à qual este mapa de coletor de eventos pertence.
ID
A ID de controle do controle OLE.
dispid
A ID de despacho do evento disparado pelo controle.
pfnHandler
Ponteiro para uma função de membro que manipula o evento. Esta função deve ter um tipo de retorno BOOL e tipos de parâmetros que correspondam aos parâmetros do evento (consulte vtsParams). A função deve retornar TRUE para indicar que o evento foi manipulado; caso contrário, FALSE.
vtsParams
Uma sequência de constantes de VTS_ que especifica os tipos dos parâmetros para o evento. Essas são as mesmas constantes que são usadas em entradas de mapa de despacho, como DISP_FUNCTION.
Observações
O argumento vtsParams é uma lista separada por espaço de valores das constantes VTS_ . Um ou mais desses valores separados por espaços (não vírgulas) especifica a lista de parâmetros da função. Por exemplo:
VTS_I2 VTS_BOOL
especifica uma lista contendo um inteiro curto seguido de um BOOL.
Para obter uma lista das constantes VTS_ , consulte EVENT_CUSTOM.
Requerimentos
Cabeçalho afxdisp.h
ON_EVENT_RANGE
Use a macro ON_EVENT_RANGE para definir uma função de manipulador de eventos para um evento disparado por qualquer controle OLE com uma ID de controle dentro de um intervalo contíguo de IDs.
ON_EVENT_RANGE(theClass, idFirst, idLast, dispid, pfnHandler, vtsParams)
Parâmetros
a Classe
A classe à qual este mapa de coletor de eventos pertence.
idFirst
A ID de controle do primeiro controle OLE no intervalo.
idLast
A ID de controle do último controle OLE no intervalo.
dispid
A ID de despacho do evento disparado pelo controle.
pfnHandler
Ponteiro para uma função de membro que manipula o evento. Esta função deve ter um tipo de retorno BOOL, um primeiro parâmetro do tipo UINT (para o ID de controle) e tipos de parâmetros adicionais que correspondam aos parâmetros do evento (consulte vtsParams). A função deve retornar TRUE para indicar que o evento foi manipulado; caso contrário, FALSE.
vtsParams
Uma sequência de constantes de VTS_ que especifica os tipos dos parâmetros para o evento. A primeira constante deve ser do tipo VTS_I4, para o ID de controle. Essas são as mesmas constantes que são usadas em entradas de mapa de despacho, como DISP_FUNCTION.
Observações
O argumento vtsParams é uma lista separada por espaço de valores das constantes VTS_ . Um ou mais desses valores separados por espaços (não vírgulas) especifica a lista de parâmetros da função. Por exemplo:
VTS_I2 VTS_BOOL
especifica uma lista contendo um inteiro curto seguido de um BOOL.
Para obter uma lista das constantes VTS_ , consulte EVENT_CUSTOM.
Exemplo
O exemplo a seguir demonstra um manipulador de eventos, para o evento MouseDown, implementado para três controles (IDC_MYCTRL1 a IDC_MYCTRL3). A função do manipulador de eventos, OnRangeMouseDown, é declarada no arquivo de cabeçalho da classe de diálogo (CMyDlg) como:
BOOL OnRangeMouseDown(UINT CtlID, short MouseButton, short Shift,
long x, long y);
O código abaixo é definido no arquivo de implementação da classe de diálogo.
BEGIN_EVENTSINK_MAP(CMyDlg, CDialog)
ON_EVENT_RANGE(CMyDlg, IDC_MYCTRL1, IDC_MYCTRL3, -605, OnRangeMouseDown,
VTS_I4 VTS_I2 VTS_I2 VTS_I4 VTS_I4)
END_EVENTSINK_MAP()
Requerimentos
Cabeçalho afxdisp.h
ON_EVENT_REFLECT
A macro ON_EVENT_REFLECT, quando usada no mapa de coletor de eventos de uma classe de wrapper do controle OLE, recebe eventos disparados pelo controle antes de serem manipulados pelo contêiner do controle.
ON_EVENT_REFLECT(theClass, dispid, pfnHandler, vtsParams)
Parâmetros
a Classe
A classe à qual este mapa de coletor de eventos pertence.
dispid
A ID de despacho do evento disparado pelo controle.
pfnHandler
Ponteiro para uma função de membro que manipula o evento. Esta função deve ter um tipo de retorno BOOL e tipos de parâmetros que correspondam aos parâmetros do evento (consulte vtsParams). A função deve retornar TRUE para indicar que o evento foi manipulado; caso contrário, FALSE.
vtsParams
Uma sequência de constantes de VTS_ que especifica os tipos dos parâmetros para o evento. Essas são as mesmas constantes que são usadas em entradas de mapa de despacho, como DISP_FUNCTION.
Observações
O argumento vtsParams é uma lista separada por espaço de valores das constantes VTS_ .
Um ou mais desses valores separados por espaços (não vírgulas) especifica a lista de parâmetros da função. Por exemplo:
VTS_I2 VTS_BOOL
especifica uma lista contendo um inteiro curto seguido de um BOOL.
Para obter uma lista das constantes VTS_ , consulte EVENT_CUSTOM.
Requerimentos
Cabeçalho afxdisp.h
ON_PROPNOTIFY
Use a macro ON_PROPNOTIFY para definir uma entrada de mapa de coletor de eventos para manipular notificações de propriedade de um controle OLE.
ON_PROPNOTIFY(theClass, id, dispid, pfnRequest, pfnChanged)
Parâmetros
a Classe
A classe à qual este mapa de coletor de eventos pertence.
ID
A ID de controle do controle OLE.
dispid
O ID de envio do imóvel envolvido na notificação.
pfnRequest
Ponteiro para uma função de membro que manipula a OnRequestEdit notificação para esta propriedade. Esta função deve ter um tipo de retorno BOOL e um parâmetro BOOL* . Esta função deve definir o parâmetro como TRUE para permitir que a propriedade seja alterada e FALSE para não permitir. A função deve retornar TRUE para indicar que a notificação foi tratada; caso contrário, FALSE.
pfnAlterado
Ponteiro para uma função de membro que manipula a OnChanged notificação para esta propriedade. A função deve ter um tipo de retorno BOOL e um parâmetro UINT. A função deve retornar TRUE para indicar que a notificação foi tratada; caso contrário, FALSE.
Observações
O argumento vtsParams é uma lista separada por espaço de valores das constantes VTS_ . Um ou mais desses valores separados por espaços (não vírgulas) especifica a lista de parâmetros da função. Por exemplo:
VTS_I2 VTS_BOOL
especifica uma lista contendo um inteiro curto seguido de um BOOL.
Para obter uma lista das constantes VTS_ , consulte EVENT_CUSTOM.
ON_PROPNOTIFY_RANGE
Use a macro ON_PROPNOTIFY_RANGE para definir uma entrada de mapa de coletor de eventos para manipular notificações de propriedade de qualquer controle OLE com uma ID de controle dentro de um intervalo contíguo de IDs.
ON_PROPNOTIFY_RANGE(theClass, idFirst, idLast, dispid, pfnRequest, pfnChanged)
Parâmetros
a Classe
A classe à qual este mapa de coletor de eventos pertence.
idFirst
A ID de controle do primeiro controle OLE no intervalo.
idLast
A ID de controle do último controle OLE no intervalo.
dispid
O ID de envio do imóvel envolvido na notificação.
pfnRequest
Ponteiro para uma função de membro que manipula a OnRequestEdit notificação para esta propriedade. Esta função deve ter um tipo de BOOL retorno e UINTBOOL* parâmetros. A função deve definir o parâmetro como TRUE para permitir que a propriedade seja alterada e FALSE para não permitir. A função deve retornar TRUE para indicar que a notificação foi tratada; caso contrário, FALSE.
pfnAlterado
Ponteiro para uma função de membro que manipula a OnChanged notificação para esta propriedade. A função deve ter um tipo de BOOL retorno e um UINT parâmetro. A função deve retornar TRUE para indicar que a notificação foi tratada; caso contrário, FALSE.
Requerimentos
Cabeçalho afxdisp.h
ON_PROPNOTIFY_REFLECT
A macro ON_PROPNOTIFY_REFLECT, quando usada no mapa de coletor de eventos de uma classe wrapper do controle OLE, recebe notificações de propriedade enviadas pelo controle antes de serem manipuladas pelo contêiner do controle.
ON_PROPNOTIFY_REFLECT(theClass, dispid, pfnRequest, pfnChanged)
Parâmetros
a Classe
A classe à qual este mapa de coletor de eventos pertence.
dispid
O ID de envio do imóvel envolvido na notificação.
pfnRequest
Ponteiro para uma função de membro que manipula a OnRequestEdit notificação para esta propriedade. Esta função deve ter um tipo de retorno BOOL e um parâmetro BOOL* . Esta função deve definir o parâmetro como TRUE para permitir que a propriedade seja alterada e FALSE para não permitir. A função deve retornar TRUE para indicar que a notificação foi tratada; caso contrário, FALSE.
pfnAlterado
Ponteiro para uma função de membro que manipula a OnChanged notificação para esta propriedade. A função deve ter um tipo de retorno BOOL e sem parâmetros. A função deve retornar TRUE para indicar que a notificação foi tratada; caso contrário, FALSE.
Requerimentos
Cabeçalho afxdisp.h