Partilhar via


Mapas do coletor de eventos

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

Ver também

Macros e Globais