Compartilhar via


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 correspondente

  • pszWindowName
    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 controle

  • pParentWnd
    Especifica a janela pai do controle. Não deve ser NULO.

  • nID
    Especifica a identificação do controle

  • pPersist
    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

Consulte também

Referência

CWnd Class

Gráfico da hierarquia

Conceitos

Controles ActiveX MFC