Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Em alguns aplicativos, como um aplicativo SDI ou MDI, você desejará inserir um controle em uma janela do aplicativo. A função Criar membro da classe wrapper, inserida pelo Visual C++, pode criar uma instância do controle dinamicamente, sem a necessidade de uma caixa de diálogo.
A função Criar membro tem os seguintes parâmetros:
lpszWindowName
Um ponteiro para o texto a ser exibido na propriedade Text ou Caption 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 pai do controle, geralmente um CDialog. Não deve ser NULL.
Nid
Especifica a ID de controle e pode ser usada pelo contêiner para fazer referência ao controle.
Um exemplo de como usar essa função para criar dinamicamente um controle ActiveX seria em uma exibição de formulário de um aplicativo SDI. Em seguida, você pode criar uma instância do controle no WM_CREATE manipulador do aplicativo.
Para este exemplo, CMyView é a classe de exibição principal, CCirc é a classe wrapper e CIRC. H é o cabeçalho (. H) arquivo da classe wrapper.
Implementar esse recurso é um processo de quatro etapas.
Para criar dinamicamente um controle ActiveX em uma janela que não é de diálogo
Insira CIRC. H em CMYVIEW. H, pouco antes da definição da
CMyViewclasse:#include "circ.h"Adicione uma variável de membro (do tipo
CCirc) à seção protegida da definição deCMyViewclasse localizada em CMYVIEW. H:class CMyView : public CView {protected: CCirc m_myCtl; public: afx_msg void OnViewCircdlg(); };Adicionar um
WM_CREATEmanipulador de mensagens à classeCMyView.Na função de manipulador,
CMyView::OnCreatefaça uma chamada para a função doCreatecontrole usando othisponteiro 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; }Recompile o projeto. Um controle Circ será criado dinamicamente sempre que a exibição do aplicativo for criada.