Como eu carregar especificados em time de execução de controles?
Para carregar dinamicamente controles, você precisará criar um "AtlAxWin80" que hospeda a janela e especificar o controle deve hospedar.Existem duas maneiras principais de fazer isso:
Use a API de criação de janela padrão e a ATL API de hospedagem.Essa técnica é descrita em "Adicionando ATL controle detenção suporte para qualquer janela" (Q192560) o artigo do base de dados de conhecimento.Você pode encontrar artigos da Base de dados de Conhecimento na Biblioteca MSDN ou em http://suporte.Microsoft.com.
Use o CAxWindow classe, conforme descrito abaixo:
Certifique-se de que AtlAxWinInit tiver sido chamado.
AtlAxWinInit();
AtlAxWinInit inicializa o código de hospedagem do controle.
Criar um CAxWindow objeto:
CAxWindow wnd;
CAxWindow é um CWindow-derivado wrapper para a criação e manipulação "AtlAxWin80" janelas.
Criar um host de janela e controle chamando Criar.
RECT rect = { 0, 0, 100, 100 }; wnd.Create(m_hWnd, rect, _T("MSCAL.Calendar"), WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN, WS_EX_CLIENTEDGE);
O título da janela (o terceiro parâmetro) passado para o Criar função é uma seqüência de caracteres que identifica o controle para criar.Essa seqüência pode ser um CLSID (com chaves), um ProgID, um URL ou HTML bruto (prefixadas com MSHTML:).Se for fornecida uma URL ou HTML bruto, o navegador da Web será carregado com essas informações.
Para obter informações sobre como as vidas úteis de controle, consulte Como eu destruir um controle?.