ID do artigo: 246247 - Última revisão: quinta-feira, 11 de maio de 2006 - Revisão: 4.0 Como coletar eventos de documento HTML para host WebBrowser
Nesta páginaSumárioOs desenvolvedores que hospedam o controle WebBrowser no Microsoft Visual C++ ou Visual Basic com freqüência desejam coletar eventos para o documento carregado no momento. Isso é muito útil para fornecer comportamento global que autores de navegador desejam implementar em todas as páginas dentro a experiência do usuário, como captura informações externas em um link clicado ou uma parte do texto selecionado. A estratégia geral para Visual C++ e Visual Basic é:
Mais InformaçõesO Visual C++ (ATL)A primeira empresa de ordem no Visual C++ é criar o evento coletores. Dois receptores de evento devem ser criados: um para DWebBrowserEvents2 para o controle WebBrowser e um para HtmlDocumentEvents (definido no MSHTML.H) para o documento real do ATL (Active Template Library).O coletor de DWebBrowserEvents2 pode ser implementado rapidamente usando IDispEventImpl do ATL, conforme descrito no seguinte artigo Base de dados de Conhecimento Microsoft: 194179
(http://support.microsoft.com/kb/194179/
)
AtlEvnt.exe exemplo mostra como cria ATL coletores usando as classes ATL IDispEventImpl e IDispEventSimpleImpl Porque não haverá um novo documento toda vez que o usuário navega para uma nova página, você deve coletar os eventos de documento sempre que o controle WebBrowser lança o evento DocumentComplete. Dentro o manipulador de DocumentComplete, usar o seguinte código para coletar eventos de documento: 180366
(http://support.microsoft.com/kb/180366/
)
Como determinar quando uma página é feita carregando no controle WebBrowser O coletor de eventos documento HTML deve incluir o arquivos <MSHTML.h> e <MSHTMDID.h> (que define todos os DISPIDs para HTMLDocumentEvents).Manipuladores de eventos para eventos de documento cancelável devem retornar um valor booleano no parâmetro do método IDispatch::Invoke() pvarResult. Um valor de VARIANT_TRUE indica que o Internet Explorer deve executar seu próprio processamento de eventos; um valor de VARIANT_FALSE cancela o evento. Por esse motivo, você deve substituir Invoke() diretamente em vez de usar uma implementação de atalho como IDispEventImpl do ATL, que não permitirá a você alterar o pvarResult. Para substituir Invoke() com êxito em um coletor de eventos ATL, consulte o seguinte artigo na Base de dados de Conhecimento da Microsoft: 181277
(http://support.microsoft.com/kb/181277/
)
O exemplo AtlSink.exe demonstra como implementar um recpetor de dispinterface, usando a ATL (Active Template Library) no Visual C++ O coletor de código a seguir mostra como Invoke() pode ser substituída para manipular o evento Click (DISPID_CLICK): Visual BasicO processo no Visual Basic é o mesmo: coletor de eventos de documento no evento DocumentComplete do objecto WebBrowser. Felizmente, o processo de evento de recepção é reduzido usando palavra-chave WithEvents do Visual Basic em cooperação com uma declaração de variável.Supondo que o WebBrowser é denominado WebBrowser1 e você adicionou o Microsoft HTML Object Library ao projeto, o código a seguir funciona exatamente o mesmo que o código C++: ReferênciasPara obter mais informações sobre como desenvolver soluções baseadas na Web para o Microsoft Internet Explorer, visite os seguintes sites: http://msdn.microsoft.com/ie/
(http://msdn.microsoft.com/ie/)
http://support.microsoft.com/iep (http://support.microsoft.com/iep) A informação contida neste artigo aplica-se a:
Tradução automáticaIMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado. Clique aqui para ver a versão em Inglês deste artigo: 246247
(http://support.microsoft.com/kb/246247/en-us/
)
| Outros Recursos Outros Sites de Suporte
ComunidadesObtenha Ajuda AgoraTraduções deste artigo
|






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email



Voltar para o início