Modificar o controle DHTML da ATL
O assistente de controle da ATL fornece código inicial para que você possa criar e executar o controle e, portanto, você pode ver como os métodos são gravados nos arquivos de projeto e como o DHTML chama o código C++ do controle usando os métodos de expedição. Você pode adicionar qualquer método de expedição à interface. Em seguida, você pode chamar os métodos no recurso HTML.
Como modificar o controle DHTML da ATL
No Modo de Exibição de Classe, expanda o projeto de controle.
Observe que a interface que termina em "UI" tem um método
OnClick
. A interface que não termina em "UI" não tem nenhum método.Adicione um método chamado
MethodInvoked
à interface que não termina em "UI".Esse método será adicionado à interface usada no contêiner de controle para interação de contêiner, não à interface usada pelo DHTML para interagir com o controle. Somente o contêiner pode invocar esse método.
Localize o método com stub no arquivo .cpp e adicione o código para exibir uma caixa de mensagem, por exemplo:
::MessageBox(NULL, _T("I'm invoked"), _T("Your Container Message"), MB_OK);
Adicione outro método chamado
HelloHTML
. No entanto, desta vez, adicione-o à interface que termina em "UI". Localize o métodoHelloHTML
com stub no arquivo .cpp e adicione o código para exibir uma caixa de mensagem, por exemplo:::MessageBox(NULL, _T("Here's your message"), _T("HelloHTML"), MB_OK);
Adicione um terceiro método,
GoToURL
, à interface que não termina em "UI". Implemente esse método chamando IWebBrowser2::Navigate, da seguinte maneira:m_spBrowser->Navigate(CComBSTR(L"www.microsoft.com"), NULL, NULL, NULL, NULL);
Você pode usar os métodos
IWebBrowser2
porque a ATL fornece um ponteiro para essa interface para você no arquivo .h.
Em seguida, modifique o recurso HTML para invocar os métodos criados. Você adicionará três botões para invocar esses métodos.
Para modificar o recurso HTML
Em Gerenciador de Soluções, clique duas vezes no arquivo .htm para exibir o recurso HTML.
Examine o HTML, especialmente as chamadas para os métodos de expedição externos do Windows. O HTML chama o método
OnClick
do projeto, e os parâmetros indicam o corpo do controle (theBody
) e a cor a ser atribuída ("red
"). O texto que segue a chamada de método é o rótulo que aparece no botão.Adicione outro método
OnClick
, apenas altere a cor. Por exemplo:<br> <br> <BUTTON onclick='window.external.OnClick(theBody, "white");'>Refresh</BUTTON>
Esse método criará um botão, chamado Atualizar, que o usuário poderá clicar para retornar o controle à tela de fundo original e branca.
Adicione a chamada ao método
HelloHTML
que você criou. Por exemplo:<br> <br> <BUTTON onclick='window.external.HelloHTML();'>HelloHTML</BUTTON>
Esse método criará um botão, chamado HelloHTML, que o usuário poderá clicar para exibir a caixa de mensagem
HelloHTML
.
Agora você pode criar e testar o controle DHTML modificado.