Partilhar via


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:

  1. 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.

  2. 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?.

Consulte também

Conceitos

Contenção de controle ATL perguntas freqüentes