Etapa 7: Colocando o controle em uma página da Web
O controle agora é concluído.Para ver seu controle trabalhar em uma situação do mundo real, colocá-lo em uma página da Web.Um arquivo HTML que contém o controle foi criado quando você definiu o controle.Abra o arquivo PolyCtl.htm do solution Explorer, e você pode ver seu controle em uma página da Web.
Em esta etapa, você script a página da Web irá responder a eventos.Você também irá alterar o controle para permitir que o Internet Explorer saber que o controle é seguro para o script.
Script a página da Web
O controle não faz nada, ainda assim que alterar a página da Web para responder a eventos que você envia.
O script a página da Web
Abra PolyCtl.htm e selecione o modo HTML.Adicione as seguintes linhas no código HTML.Devem ser adicionados após </OBJECT> mas antes de </BODY>.
<SCRIPT LANGUAGE="VBScript"> <!-- Sub PolyCtl_ClickIn(x, y) PolyCtl.Sides = PolyCtl.Sides + 1 End Sub Sub PolyCtl_ClickOut(x, y) PolyCtl.Sides = PolyCtl.Sides - 1 End Sub --> </SCRIPT>
Salve o arquivo de htm.
Você adicionou qualquer código jscript que obtém a propriedade dos lados do controle e aumenta o número de lados por um se você clicar no controle.Se você clicar fora do controle, você reduz o número de lados por um.
Indicando que o controle é seguro para o script
Você pode exibir a página da Web com o controle no Internet Explorer ou, mais conveniente, usar modo de navegador da Web criado no Visual C++.Para ver seu controle no modo de navegador da Web, clique com o botão direito do mouse em PolyCtl.htm, e clique Exibir no navegador.
Com base em suas configurações de segurança atual do Internet Explorer, você pode receber uma caixa de diálogo de alerta de segurança que indica que o controle não pode ser seguro para o script e pode potencialmente fazer danos.Por exemplo, se você tiver um controle que exibe um arquivo mas também tinha um método de Delete que excluísse um arquivo, seria seguro se você exibiu o sozinho em uma página.Seria não seguro para o script, o entanto, como alguém pode chamar o método de Delete .
Observação de segurança |
---|
Para este tutorial, você pode alterar suas configurações de segurança no Internet Explorer para executar os controles ActiveX que não estão marcados como o cofre.Em o painel de controle, clique em Propriedades da Internet e clique em Segurança para alterar as configurações apropriadas.Quando você tiver terminado o tutorial, alterar as configurações de segurança de volta para seu estado original. |
Você pode programaticamente alertar Internet Explorer que não precisará exibir a caixa de diálogo de alerta de segurança para esse controle específico.Você pode fazer isso com a interface de IObjectSafety , e ATL fornece uma implementação da interface na classe IObjectSafetyImpl.Para adicionar a interface para o controle, adicione IObjectSafetyImpl a sua lista de classes herdadas e adicione uma entrada para ele no seu mapa COM.
Para adicionar ao controle IObjectSafetyImpl
Adicione a seguinte linha no final da lista de classes herdadas em PolyCtl.h e adicione uma vírgula para a linha anterior:
public IObjectSafetyImpl<CPolyCtl, INTERFACESAFE_FOR_UNTRUSTED_CALLER>
Adicione a seguinte linha ao mapa COM em PolyCtl.h:
COM_INTERFACE_ENTRY(IObjectSafety)
Compilação e teste o controle
Compilar o controle.Uma vez que a compilação for concluída, abra PolyCtl.htm no modo do navegador novamente.De esta vez, a página da Web deve ser exibido diretamente sem a caixa de diálogo de alerta de segurança.Clique dentro; polygon o número de gera os lados por um.Clique fora polygon para reduzir o número de lados.Se você tentar reduzir o número de lados abaixo de três, você verá a mensagem de erro que define.
Próximas etapas
Isso conclui o tutorial de ATL.Para links para mais informações sobre ATL, consulte página inicial de ATL.