ON_EVENT_RANGE
Use a macro de ON_EVENT_RANGE para definir uma função de manipulador de eventos para um evento acionado por qualquer controlador OLE que tem uma identificação de controle em um intervalo contíguo de IDs.
ON_EVENT_RANGE(theClass, idFirst, idLast, dispid, pfnHandler, vtsParams )
Parâmetros
theClass
A classe ao qual esse mapa de coletor de eventos pertence.idFirst
A ID de controle do primeiro controlador OLE no intervalo.idLast
A ID de controle do controlador OLE o mais recente no intervalo.dispid
A ID da remessa de evento disparado pelo controle.pfnHandler
Ponteiro para uma função de membro que manipula o evento. Essa função deve ter um tipo de retorno de BOOL , um primeiro parâmetro de tipo UINT (para a ID do controle), e os tipos de parâmetro adicionais que correspondem aos parâmetros do evento (consulte vtsParams). A função deve retornar Verdadeiro para indicar que o evento identificado; esteve se não Falso.vtsParams
Uma sequência de constantes de VTS_ que especifica os tipos de parâmetros para o evento. A primeira constante deve ser do tipo VTS_I4, para a ID de controle Essas são as mesmas constantes são usadas em entradas do mapa de distribuição como DISP_FUNCTION.
Comentários
O argumento de vtsParams é uma lista separada do espaço de valores de constantes de VTS_ . Um ou mais desses valores separados por espaços (vírgula) não especificam a lista de parâmetros de função. Por exemplo:
VTS_I2 VTS_BOOL
especifica uma lista que contém um valor inteiro seguido por BOOLcurto.
Para obter uma lista das constantes de VTS_ , consulte EVENT_CUSTOM.
Exemplo
O exemplo a seguir demonstra um manipulador de eventos, para o evento de MouseDown, implementado para três controles (IDC_MYCTRL1 com IDC_MYCTRL3). A função do manipulador de eventos, OnRangeMouseDown, é declarada no arquivo de cabeçalho da classe da caixa de diálogo (CMyDlg) como:
BOOL OnRangeMouseDown(UINT CtlID, short MouseButton, short Shift,
long x, long y);
O código a seguir é definido no arquivo de implementação da classe da caixa 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()
Requisitos
Header: afxdisp.h