CWnd::CreateControl
Use esta função de membro para criar um controle ActiveX que é representado no programa MFC por um objeto de CWnd .
BOOL CreateControl(
LPCTSTR pszClass,
LPCTSTR pszWindowName,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID,
CFile* pPersist = NULL,
BOOL bStorage = FALSE,
BSTR bstrLicKey = NULL
);
BOOL CreateControl(
REFCLSID clsid,
LPCTSTR pszWindowName,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID,
CFile* pPersist = NULL,
BOOL bStorage = FALSE,
BSTR bstrLicKey = NULL
);
BOOL CreateControl(
REFCLSID clsid,
LPCTSTR pszWindowName,
DWORD dwStyle,
const POINT* ppt,
const SIZE* psize,
CWnd* pParentWnd,
UINT nID,
CFile* pPersist = NULL,
BOOL bStorage = FALSE,
BSTR bstrLicKey = NULL
);
Parâmetros
pszClass
Essa cadeia de caracteres pode conter o “nome curto” OLE (ProgID) para a classe, por..exemplo, “CIRC3.Circ3Ctrl.1”. O nome precisa coincidir com o mesmo nome registrado pelo controle. Como alternativa, a cadeia de caracteres pode conter o formulário de cadeia de caracteres de CLSID, contido em chaves, por..exemplo, “{9DBAFCCF-592F-101B-85CE-00608CEC297B}”. Em ambos os casos, CreateControl converte a cadeia de caracteres para a identificação de classe correspondentepszWindowName
Um ponteiro para o texto a ser exibido no controle. Defina o valor da propriedade de legenda ou texto do controle (se houver). Se a propriedade de NULO, da legenda de controle ou de texto não é alterada.dwStyle
Estilos do windows. Os estilos disponíveis estão listados nos comentários.rect
Especifica o tamanho e a posição do controle. Pode ser um objeto de CRect ou uma estrutura de RECT .ppt
Os pontos a PONTO estrutura ou ao objeto de CPoint que contêm o canto superior esquerdo do controle.pSize
Os pontos a TAMANHO estrutura ou ao objeto de CSize que contêm o tamanho do controlepParentWnd
Especifica a janela pai do controle. Não deve ser NULO.nID
Especifica a identificação do controlepPersist
Um ponteiro para CFile que contém o estado persistente para o controle. O valor padrão é NULO, indicando que o controle se inicializa sem restaurar seu estado de qualquer armazenamento persistente. Se não NULO, deve ser um ponteiro para CFile- o objeto derivado que contém os dados persistentes do controle, na forma de um fluxo ou um armazenamento. Esses dados podem ter sido salvo em uma ativação anterior do cliente. CFile pode conter outros dados, mas deve ter o ponteiro de leitura-gravação definido para o primeiro byte de dados persistentes no momento da chamada a CreateControl.bStorage
Indica se os dados em pPersist devem ser interpretados como dados de IStorage ou de IStream. Se os dados são pPersist em um armazenamento, bStorage deve ser Verdadeiro. Se os dados são pPersist em um fluxo, bStorage deve ser Falso. o valor padrão é Falso.bstrLicKey
Dados opcionais de chave de licença. Esses dados são necessárias somente criando controles que exigem uma chave de licença de tempo de execução. Se o controle suporta licenciamento, você deve fornecer uma chave de licença para criação de controles para obterá êxito. o valor padrão é NULO.clsid
A identificação exclusiva da classe do controle.
Valor de retorno
Diferente de zero se com êxito; se não 0.
Comentários
CreateControl é um analógico direto de função de CWnd::Create , que cria a janela para CWnd. CreateControl cria um controle ActiveX em vez de uma janela comum.
Somente um subconjunto dos sinalizadores de dwStyle do windows é suportado para CreateControl:
WS_VISIBLE cria uma janela que é inicialmente visível. Necessário se você deseja que o controle seja visível imediatamente, como janelas comuns.
WS_DISABLED cria uma janela que é desativada inicialmente. Uma janela desativada não pode receber entrada do usuário. Pode ser definido se o controle tem uma propriedade ativado.
WS_BORDER cria uma janela com um fino- linha borda. Pode ser definido se o controle tem uma propriedade de BorderStyle.
WS_GROUP especifica o primeiro controle de um grupo de controles. O usuário pode alterar o foco do teclado de um controle no grupo a seguir usando as teclas de direção. Todos os controles definidos pelo estilo de WS_GROUP após o primeiro controle pertencem ao mesmo grupo. O próximo controle com o estilo de WS_GROUP termina o grupo e enfia o grupo seguir.
WS_TABSTOP especifica um controle que pode receber o foco do teclado quando o usuário pressiona a tecla TAB. Pressionando as alterações de tecla TAB o foco do teclado para o próximo controle de estilo de WS_TABSTOP .
Exemplo
class CGenocx : public CWnd
{
protected:
DECLARE_DYNCREATE(CGenocx)
public:
CLSID const& GetClsid()
{
static CLSID const clsid
= { 0x20DD1B9E, 0x87C4, 0x11D1, { 0x8B, 0xE3, 0x0, 0x0, 0xF8, 0x75, 0x4D, 0xA1 } };
return clsid;
}
// This code is generated by the Control Wizard.
// It wraps the call to CreateControl in the call to Create.
virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle,
const RECT& rect, CWnd* pParentWnd, UINT nID,
CCreateContext* pContext = NULL)
{
UNREFERENCED_PARAMETER(pContext);
UNREFERENCED_PARAMETER(lpszClassName);
return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID);
}
// remainder of class declaration omitted...
Requisitos
Cabeçalho: afxwin.h