Partilhar via


Recipientes de controle ActiveX: Usando controles em um contêiner de caixa de diálogo não

Em alguns aplicativos, como um SDI ou um aplicativo MDI, você deseja incorporar um controle em uma janela do aplicativo.O criar função de membro da classe de wrapper, inserida pelo Visual C++, poderá criar uma instância do controle dinamicamente, sem a necessidade de uma caixa de diálogo.

O criar função de membro tem os seguintes parâmetros:

  • lpszWindowName
    Um ponteiro para o texto a ser exibido na propriedade de texto ou legenda do controle (se houver).

  • dwStyle
    Estilos do Windows.Para obter uma lista completa, consulte CWnd::CreateControl.

  • rect
    Especifica o tamanho e a posição do controle.

  • pParentWnd
    Especifica a janela do controle pai, normalmente um CDialog.Não deve ser Nulo.

  • nID
    Especifica a identificação de controle e pode ser usado pelo contêiner para se referir ao controle.

Um exemplo de usar esta função para criar dinamicamente um controle ActiveX seria em um formulário de um aplicativo SDI.Você pode criar uma instância do controle de WM_CREATE manipulador do aplicativo.

Neste exemplo, CMyView é a classe de modo de exibição principal, CCirc é a classe de invólucro e CIRC.H é o cabeçalho (.H) o arquivo da classe wrapper.

Implementar esse recurso é um processo de quatro etapas.

Para criar dinamicamente um controle ActiveX em uma janela de diálogo não

  1. Inserir CIRC.H em CMYVIEW.H, antes de CMyView definição de classe:

    #include "circ.h"
    
  2. Adicionar uma variável de membro (do tipo CCirc) para a seção protegida de CMyView localizada em CMYVIEW de definição de classe.H:

    class CMyView : public CView
    {
    
    
    ...
    
    
    protected:
       CCirc m_myCtl;
    public:
       afx_msg void OnViewCircdlg();
    };
    
  3. Adicionar um WM_CREATE manipulador de mensagem a classe CMyView.

  4. Na função de manipulador, CMyView::OnCreate, fazer uma chamada para o controle Create função usando o Este ponteiro como a janela pai:

    int CMyView::OnCreate(LPCREATESTRUCT lpCreateStruct)
    {
       if (CView::OnCreate(lpCreateStruct) == -1)
          return -1;
    
       m_myCtl.Create(NULL, WS_VISIBLE, CRect(50,50,100,100), this, 0);
       m_myCtl.SetCaption(_T("Control created"));
    
       return 0;
    }
    
  5. Crie o projeto.Um controle Circ será criado dinamicamente sempre que o modo de exibição do aplicativo é criado.

Consulte também

Conceitos

Recipientes de controle ActiveX