Os controles ActiveX MFC: Adicionando eventos de ações a um controle ActiveX
Eventos de ações diferem dos eventos personalizados de automaticamente foi acionados por classe COleControl.COleControl contém funções de membro predefinidas que acionam eventos resultantes de ações comuns. Algumas ações comuns implementadas por COleControl Inclua single e double-clicks no controle, eventos de teclado e as alterações do estado dos botões do mouse. Entradas de MAP de evento para eventos são sempre precedidos por o estoqueEVENT_STOCK prefixo.
Ações evento s suportados pelo Assistente evento
The COleControl classe fornece dez eventos das ações listados na tabela a seguir. Você pode especificar o s evento você deseja em seu controle usando o evento Assistente para adicionar.
Eventos de ações
Evento |
Função de acionamento |
Comentários |
---|---|---|
clicar |
void (FireClick) |
Acionado quando o controle captura o mouse, qualquer BUTTONUP mensagem (esquerda, central ou direita) é recebida e o botão é solto sobre o controle.O estoque MouseDown e MouseUp eventos ocorrem antes deste evento. Entrada de MAP de evento: (EVENT_STOCK_CLICK) |
DblClick |
void (FireDblClick) |
Semelhante a clicar mas acionado quando um BUTTONDBLCLK mensagem é recebida. Entrada de MAP de evento: (EVENT_STOCK_DBLCLICK) |
Erro |
void FireError (SCODE scode, LPCSTR lpszDescription, UINT nHelpID = 0 ) |
Acionado quando ocorre um erro dentro seu controle ActiveX fora do escopo de um acesso de propriedade ou telefonar de método. Entrada de MAP de evento: (EVENT_STOCK_ERROREVENT) |
KeyDown |
void FireKeyDown (curto nChar, short nShiftState ) |
Acionado quando um WM_SYSKEYDOWN ou WM_KEYDOWN mensagem é recebida. Entrada de MAP de evento: (EVENT_STOCK_KEYDOWN) |
KeyPress |
void FireKeyPress (curto * pnChar ) |
Acionado quando um WM_CHAR mensagem é recebida. Entrada de MAP de evento: (EVENT_STOCK_KEYPRESS) |
KeyUp |
void FireKeyUp (curto nChar, short nShiftState ) |
Acionado quando um WM_SYSKEYUP ou WM_KEYUP mensagem é recebida. Entrada de MAP de evento: (EVENT_STOCK_KEYUP) |
Eventos MouseDown |
void FireMouseDown (curto nButton, short nShiftState, float x, float y ) |
Acionado se qualquer BUTTONDOWN (esquerda, centro ou à direita) é recebida.O mouse é capturado imediatamente antes que este evento é acionado. Entrada de MAP de evento: (EVENT_STOCK_MOUSEDOWN) |
MouseMove |
void FireMouseMove (curto nButton, short nShiftState, float x, float y ) |
Acionado quando um WM_MOUSEMOVE mensagem é recebida. Entrada de MAP de evento: (EVENT_STOCK_MOUSEMOVE) |
MouseUp |
void FireMouseUp (curto nButton, short nShiftState, float x, float y ) |
Acionado se qualquer BUTTONUP (esquerda, centro ou à direita) é recebida.A capturar do mouse for liberada antes que este evento é acionado. Entrada de MAP de evento: (EVENT_STOCK_MOUSEUP) |
ReadyStateChange |
void (FireReadyStateChange) |
Acionado quando um controle transições para o próximo estado de pronto devido à quantidade de dados recebidos. Entrada de MAP de evento: (EVENT_STOCK_READYSTATECHANGE) |
Adicionando um evento ações usando o Assistente de eventos
Adicionar eventos de ações requer menos trabalho que a adição de eventos personalizados porque o acionamento do evento real é tratado automaticamente pela classe base, COleControl. O procedimento a seguir adiciona um evento das ações a um controle que foi desenvolvido usando Assistente de controle ActiveX MFC.O evento, KeyPress, chamado é 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 das ações de evento selecionado para KeyPress.
Para adicionar o evento ações KeyPress usando o Assistente para adicionar eventos
Carregar projeto do controle.
No Modo de Exibição de Classe, clicar com o botão direito do mouse em sua classe de controle ActiveX para em em aberto o menu de atalho.
No menu de atalho, clicar Adicionar e, em seguida, clicar Adicionar evento.
Isso abre o ' Assistente para adicionar evento '.
No Nome do evento na lista suspensa, selecionar KeyPress.
Clique em Finish.
Adicionar evento Assistente alterações para eventos de ações
Como ações evento s são tratados pela classe base do controle, o ' Assistente para adicionar evento ' não altera sua declaração de classe de forma alguma.Ele adiciona o evento ao MAP de evento do controle e cria uma entrada em seu arquivo .idl.A linha a seguir é adicionada ao MAP de evento do controle, localizado no arquivo de implementação (.CPP) de classe do controle:
EVENT_STOCK_KEYPRESS()
Adicionar este código dispara 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 eventos adiciona a linha de código a seguir ao arquivo .IDL do controle:
[id(DISPID_KEYPRESS)] void KeyPress(SHORT* KeyAscii);
Esta linha associa o evento KeyPress com sua ID de despacho padrão e permite que o contêiner prever o evento KeyPress.
Consulte também
Conceitos
Os controles ActiveX MFC: Métodos