Controles de ActiveX MFC: Adicionando eventos de ações a um controle ActiveX

Eventos de ações diferem de eventos personalizados em que eles são acionados automaticamente pela classe COleControl.COleControlcontém funções de membro predefinidas que acionam eventos resultantes de ações comuns.Algumas ações comuns implementadas pelo COleControl incluir único - e duplo - clicks no controle, eventos de teclado e alterações no estado dos botões do mouse.Entradas de mapa de evento para eventos de ações são sempre precedidas de EVENT_STOCK prefixo.

Eventos suportados de ações a adicionar Assistente de evento

O COleControl classe fornece dez eventos ações listados na tabela a seguir.Você pode especificar os eventos que você deseja em seu controle usando o Assistente para adicionar evento.

Eventos de ações

Evento

Função de acionamento

Comentários

Clique em

void (FireClick)

Acionado quando o controle captura o mouse, qualquer BUTTONUP (esquerda, central ou direita) é recebida e o botão é liberado sobre o controle.Estoque MouseDown e MouseUp eventos ocorrerem antes deste evento.

Entrada de mapa de evento: (EVENT_STOCK_CLICK)

DblClick

void (FireDblClick)

Mas semelhante a clique disparado quando uma BUTTONDBLCLK mensagem é recebida.

Entrada de mapa de evento: (EVENT_STOCK_DBLCLICK)

Erro

void FireError( SCODE scode, LPCSTR lpszDescription, UINT nHelpID = 0 )

Acionado quando um erro ocorre dentro de seu controle de ActiveX fora do escopo de um acesso de propriedade ou chamada de método.

Entrada de mapa de evento: (EVENT_STOCK_ERROREVENT)

KeyDown

void FireKeyDown( short nChar, short nShiftState )

Acionado quando um WM_SYSKEYDOWN ou WM_KEYDOWN mensagem é recebida.

Entrada de mapa de evento: (EVENT_STOCK_KEYDOWN)

KeyPress

void FireKeyPress (short *pnChar)

Acionado quando um WM_CHAR mensagem é recebida.

Entrada de mapa de evento: (EVENT_STOCK_KEYPRESS)

KeyUp

void FireKeyUp( short nChar, short nShiftState )

Acionado quando um WM_SYSKEYUP ou WM_KEYUP mensagem é recebida.

Entrada de mapa de evento: (EVENT_STOCK_KEYUP)

MouseDown

void FireMouseDown( short nButton, short nShiftState, float x, float y )

Acionado se houver PreviewMouseLeftButtonDown É (esquerda, central ou direita) é recebida.O mouse é capturado imediatamente antes que este evento é disparado.

Entrada de mapa de evento: (EVENT_STOCK_MOUSEDOWN)

MouseMove

void FireMouseMove( short nButton, short nShiftState, float x, float y )

Acionado quando um WM_MOUSEMOVE mensagem é recebida.

Entrada de mapa de evento: (EVENT_STOCK_MOUSEMOVE)

MouseUp

void FireMouseUp( short nButton, short nShiftState, float x, float y )

Acionado se houver BUTTONUP (esquerda, central ou direita) é recebida.A captura do mouse é liberada antes que este evento é disparado.

Entrada de mapa de evento: (EVENT_STOCK_MOUSEUP)

ReadyStateChange

void (FireReadyStateChange)

Acionado quando um transições de controle para o próximo estado pronto devido à quantidade de dados recebidos.

Entrada de mapa de evento: (EVENT_STOCK_READYSTATECHANGE)

Adicionando um evento de ações usando o Assistente de evento para adicionar

Adicionando eventos de ações requer menos trabalho de adicionar eventos personalizados, pois o acionamento do evento real é manipulado automaticamente pela classe base, COleControl.O procedimento a seguir adiciona um evento de ações para um controle que foi desenvolvido usando Assistente de controle MFC ActiveX.O evento, chamado KeyPress é acionado quando uma tecla é pressionada e o controle está ativo.Esse procedimento também pode ser usado para adicionar outros eventos de ações.Substitua o nome do evento de estoque selecionado para KeyPress.

Para adicionar o evento de KeyPress ações usando o Assistente para adicionar evento

  1. Carregar projeto do controle.

  2. No modo de exibição de classe, clique com o botão direito na sua classe de controle de ActiveX para abrir o menu de atalho.

  3. No menu de atalho, clique em Add e clique em Adicionar evento.

    Isso abre o Assistente para adicionar eventos.

  4. No Nome do evento lista suspensa, selecione KeyPress.

  5. Clique em Concluir.

Adicionar alterações de Assistente de evento para eventos de ações

Porque os eventos de ações são manipulados pela classe base do controle, o Assistente para adicionar evento não altera sua declaração de classe de qualquer maneira.Adiciona o evento ao mapa de evento do controle e faz com que uma entrada no seu.Arquivo IDL.A seguinte linha é adicionada ao mapa de evento do controle, localizado na implementação de classe do controle (.Arquivo CPP):

EVENT_STOCK_KEYPRESS()

Adicionar esse código aciona um evento KeyPress quando um WM_CHAR mensagem é recebida e o controle está ativo.O evento KeyPress pode ser acionado em outros momentos, chamando a função de acionamento (por exemplo, FireKeyPress) de dentro do código de controle.

O Assistente para adicionar evento adiciona a seguinte linha de código para o controle.Arquivo IDL:

[id(DISPID_KEYPRESS)] void KeyPress(SHORT* KeyAscii);

Essa linha associa o evento KeyPress com sua ID de despacho padrão e permite que o contêiner para antecipar o evento KeyPress.

Consulte também

Referência

Classe COleControl

Conceitos

Controles de ActiveX do MFC

Controles de ActiveX MFC: métodos