Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Este artigo explica como adicionar capacidade de contenção de controlo genérico ATL (biblioteca de modelo de Active Directory) a qualquer janela, para que a janela pode conter controlos ActiveX. O suporte de contenção de controlo está em conformidade com a especificação de OCX 96 e suporta activação sem janelas e desenho livre de intermitência.
Para adicionar a contenção de controlo, siga estes passos:
Adicione os seguintes ficheiros de cabeçalho e directivas de pragma no código. Se pretender ligar ao código de contenção atl.dll, adicionar o seguinte código:
// AtlAxWinInit is implemented in Atl.dll
#pragma comment(lib, "atl.lib")
#include <atldef.h>
#define _ATL_DLL_IMPL
#include <atliface.h>
atl.dll devem ser enviados quando utiliza o ATL contenção código, independentemente se que o tamanho mínimo construir ou dependência mínimo compilação. Para obter mais informações, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
244955
(http://support.microsoft.com/kb/244955/
)
ATL projectos criados para MinDependency necessário atl.dll se os projectos utilizar ATL controlo contenção de código no Visual C++ 6.0
Adicione o seguinte código do código de inicialização de aplicação, por exemplo no início do WinMain():
//Initialize ATL control containment code.
AtlAxWinInit();
Crie os controlos ActiveX: Utilize a função de Win32 CreateWindow() , especificar "AtlAxWin" como o nome da classe e, em seguida, especificar um GUID, um ID de programa ou um URL como o título. Por exemplo:
// Create the Calendar control specifying the ProgID.
// Make sure that the module handle you pass to CreateWindow is the
// same module handle where AtlAxWinInit() was called from.
HWND hWnd = ::CreateWindow("AtlAxWin", "MSCAL.Calendar",
WS_CHILD|WS_VISIBLE, 10, 10, 500, 300, hParent, NULL,
::GetModuleHandle(NULL), NULL);
// Same as above, except CLSID is specified instead of ProgID.
// Corresponds to ProgID "MSCAL.Calendar.7"
HWND hWnd = ::CreateWindow("AtlAxWin",
"{8E27C92B-1264-101C-8A2F-040224009C02}",
WS_CHILD|WS_VISIBLE, 10, 10, 500, 300, hParent, NULL,
::GetModuleHandle(NULL), NULL);
// Creates the Web Browser control and navigates to the
// specified web page.
HWND hWnd = ::CreateWindow("AtlAxWin", "http://www.microsoft.com",
WS_CHILD|WS_VISIBLE, 10, 10, 500, 300, hParent, NULL,
::GetModuleHandle(NULL), NULL);
// Creates an instance of an dynamic HTML document.
HWND hWnd = ::CreateWindow("AtlAxWin", "mshtml:<H1>Hello World</H1>",
WS_CHILD|WS_VISIBLE, 10, 10, 500, 300, hParent, NULL,
::GetModuleHandle(NULL), NULL);
Se tiver adicionado _Module.Init() , adicione o seguinte código no código de terminação de aplicação (por exemplo, numa WinMain() , após o ciclo de mensagem):
_Module.Term()
Pode obter o IUnknown * do controlo através de AtlAxGetControl() . Para obter o IUnknown * do contentor, utilize AtlAxGetHost() . HWND devolvido CreateWindow() para o controlo é passado como o primeiro parâmetro em ambas as funções.
A informação contida neste artigo aplica-se a:
Microsoft ActiveX Template Library 3.0 nas seguintes plataformas
IMPORTANTE: 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 192560
(http://support.microsoft.com/kb/192560/en-us/
)
Qual foi o esforço que despendeu pessoalmente para utilizar este artigo?
Muito baixo
Baixo
Moderado
Elevado
Muito elevado
Diga-nos porquê e o que podemos fazer para melhorar estas informações
Obrigado! Os seus comentários são utilizados para ajudar-nos a melhorar o conteúdo do nosso suporte. Para obter mais opções de assistência, visite a Home Page de Ajuda e Suporte.