Compartilhar via


Método ITextHost::TxNotify (textserv.h)

Notifica o host de texto de vários eventos.

Sintaxe

HRESULT TxNotify(
  [in] DWORD iNotify,
  [in] void  *pv
);

Parâmetros

[in] iNotify

Tipo: DWORD

Evento do qual notificar o host. Um dos códigos de notificação EN_ .

[in] pv

Tipo: void*

Dados extras, dependentes de iNotify.

Retornar valor

Tipo: HRESULT

Retorne S_OK se o método for bem-sucedido.

Retorne S_FALSE se o método falhar. Para obter mais informações sobre códigos de erro COM, consulte Tratamento de erros em COM.

Comentários

Observe que há duas categorias básicas de eventos, diretas e atrasadas . Os eventos diretos são enviados imediatamente porque precisam de algum processamento, por exemplo, EN_PROTECTED. Os eventos atrasados são enviados depois que todo o processamento ocorre; o controle está, portanto, em um estado estável. Exemplos de notificações atrasadas são EN_CHANGE, EN_ERRSPACE e EN_SELCHANGE.

Os eventos de notificação são iguais aos códigos de notificação enviados para a janela pai de uma janela de edição avançada. O disparo de eventos pode ser controlado com uma máscara definida por meio da mensagem EM_SETEVENTMASK .

Em geral, é legal fazer chamadas para o objeto de serviços de texto durante o processamento desse método; no entanto, os implementadores são advertidos para evitar a recursão excessiva.

Veja a seguir uma lista das notificações que podem ser enviadas.

Notification Significado
EN_CHANGE Enviado após o sistema atualizar a tela, quando o usuário executa uma ação que pode ter alterado o texto no controle.
EN_DROPFILES Enviado quando uma mensagem WM_DROPFILES ou uma notificação IDropTarget::D ragEnter é recebida.
EN_ERRSPACE Enviado quando um controle não pode alocar memória suficiente para atender a uma solicitação especificada.
EN_HSCROLL Enviado quando o usuário clica na barra de rolagem horizontal do controle antes que a tela seja atualizada.
EN_KILLFOCUS Enviado quando o controle perde o foco do teclado.
EN_LINK Enviado quando um controle de edição avançada recebe várias mensagens, como mensagens de clique do mouse, quando o ponteiro do mouse está sobre o texto que tem o efeito CFE_LINK.
EN_MAXTEXT Enviado quando a inserção de texto atual excedeu o número máximo de caracteres para o controle.
EN_OLEOPFAILED Enviado quando uma ação do usuário em um objeto OLE falhou.
EN_PROTECTED Enviado quando o usuário executa uma ação que altera o intervalo protegido de texto.
EN_REQUESTRESIZE Enviado quando o conteúdo de um controle de edição avançada é diferente do tamanho da janela do controle.
EN_SAVECLIPBOARD Enviado quando um controle de edição está sendo destruído. O host de texto deve indicar se OleFlushClipboard deve ser chamado. Os dados que indicam o número de caracteres e objetos a serem liberados são enviados na estrutura de dados ENSAVECLIPBOARD . O valor da máscara não é nada.
EN_SELCHANGE Enviado quando a seleção atual foi alterada. Uma estrutura de dados SELCHANGE também é enviada, o que indica o novo intervalo de seleção no tipo de dados que a seleção acabou no momento. Controlado pela máscara de ENM_SELCHANGE .
EN_SETFOCUS Enviado quando o controle de edição recebe o foco do teclado. Nenhum dado extra é enviado; não há máscara.
EN_STOPNOUNDO Enviado quando ocorre uma ação para a qual o controle não pode alocar memória suficiente para manter o estado de desfazer. Se S_FALSE for retornado, a ação será interrompida; caso contrário, a ação continuará.
EN_UPDATE Enviado antes que um controle de edição solicite uma nova análise de dados ou texto alterados. Nenhum dado adicional é enviado. Esse evento é controlado por meio da máscara de ENM_UPDATE . Edição Avançada 2.0 e posterior: A máscara de ENM_UPDATE é ignorada e o código de notificação EN_UPDATE sempre é enviado. No entanto, quando o Microsoft Rich Edit 3.0 emula o Microsoft Rich Edit 1.0, a máscara de ENM_UPDATE controla essa notificação.
EN_VSCROLL Enviado quando o usuário clica na barra de rolagem vertical de um controle de edição ou quando o usuário rola a roda do mouse sobre o controle de edição, antes que a tela seja atualizada. Isso é controlado por meio da máscara de ENM_SCROLL ; nenhum dado extra é enviado.
 
Nota O EN_MSGFILTER não é enviado ao TxNotify. Para filtrar mensagens de janela, use TxSendMessage.
 

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho textserv.h
DLL Msftedit.dll

Confira também

Conceitual

EM_SETEVENTMASK

EN_CHANGE

EN_DROPFILES

EN_ERRSPACE

EN_HSCROLL

EN_KILLFOCUS

EN_LINK

EN_MAXTEXT

EN_OLEOPFAILED

EN_PROTECTED

EN_REQUESTRESIZE

EN_SAVECLIPBOARD

EN_SELCHANGE

EN_SETFOCUS

EN_STOPNOUNDO

EN_UPDATE

EN_VSCROLL

ITextHost

Referência

Controles de edição avançada sem janelas