Partilhar via


Controles de ActiveX MFC: Adicionando propriedades personalizadas de outra página

Ocasionalmente, um controle ActiveX terá mais propriedades que razoavelmente pode caber em uma página de propriedade.Nesse caso, você pode adicionar páginas de propriedades para o controle de ActiveX para exibir essas propriedades.

Este artigo descreve como adicionar novas páginas de propriedade para um controle de ActiveX que já tem pelo menos uma página de propriedade.Para obter mais informações sobre a adição de propriedade ações páginas (fonte, imagem ou cor), consulte o artigo controles de ActiveX de MFC: usando páginas de propriedades de ações.

Os procedimentos a seguir usam uma estrutura de controle de ActiveX de amostra criada pelo Assistente de controle de ActiveX.Portanto, os nomes de classe e os identificadores são exclusivas para este exemplo.

Para obter mais informações sobre como usar páginas de propriedade em um controle ActiveX, consulte os seguintes artigos:

Para inserir um novo modelo de página de propriedade em seu projeto

  1. Com seu projeto de controle aberto, abra o modo de exibição de recurso no espaço de trabalho do projeto.

  2. Clique com o botão direito na exibição de recurso para abrir o menu de atalho e clique em Add Resource.

  3. Expanda o caixa de diálogo nó e selecione IDD_OLE_PROPPAGE_SMALL.

  4. Clique em New para adicionar o recurso para seu projeto.

  5. Selecione o novo modelo de página de propriedade para atualizar a janela Propriedades.

  6. Digite um novo valor para o ID propriedade.Este exemplo usa IDD_PROPPAGE_NEWPAGE.

  7. Clique em Salvar na barra de ferramentas.

Para associar o novo modelo de uma classe

  1. Abra o modo de exibição de classe.

  2. Clique com o botão direito na exibição de classe para abrir o menu de atalho.

  3. No menu de atalho, clique em Add e clique em Add Class.

    Isso abre o Add Class caixa de diálogo.

  4. Clique duas vezes no Classe do MFC modelo.

  5. No Nome da classe caixa de Assistente de classe do MFC, digite um nome para a nova classe de diálogo.(Neste exemplo, CAddtlPropPage.)

  6. Se você deseja alterar nomes de arquivo, clique em Alterar.Digite os nomes de arquivos de cabeçalho e de implementação ou aceitar os nomes padrão.

  7. No Classe Base caixa, selecione COlePropertyPage.

  8. No ID da caixa de caixa, selecione IDD_PROPPAGE_NEWPAGE.

  9. Clique em Concluir para criar a classe.

Para permitir acesso a esta nova página de propriedades de usuários do controle, faça as seguintes alterações à seção do controle propriedade página IDs macro (localizada no arquivo de implementação de controle):

BEGIN_PROPPAGEIDS(CMyAxUICtrl, 2)
   PROPPAGEID(CMyAxUIPropPage::guid)
   PROPPAGEID(CAddtlPropPage::guid)
END_PROPPAGEIDS(CMyAxUICtrl)

Observe que você deve aumentar o segundo parâmetro do BEGIN_PROPPAGEIDS macro (a contagem de página de propriedade) de 1 a 2.

Você também deve modificar o arquivo de implementação do controle (.Arquivo CPP) para incluir o cabeçalho (.H) o arquivo da nova classe de página de propriedade.

A próxima etapa envolve a criação de dois novos recursos de seqüência de caracteres que irá fornecer um nome e uma legenda para a nova página de propriedade.

Para adicionar novos recursos de seqüência de caracteres para uma página de propriedade

  1. Com seu projeto de controle aberto, abra o modo de exibição de recurso.

  2. Clique duas vezes o Tabela de seqüência de caracteres pasta e clique duas vezes em seqüência existente da tabela à qual você deseja adicionar uma seqüência de caracteres de recurso.

    Isso abre a tabela de seqüência de caracteres em uma janela.

  3. Selecione a linha em branco no final da tabela de seqüência de caracteres e digite o texto ou legenda da seqüência de caracteres: por exemplo, "propriedade página adicional."

    Isso abre uma Propriedades de String mostrando legenda e ID caixas.O legenda caixa contém a seqüência de caracteres que você digitou.

  4. No ID caixa, selecione ou digite uma identificação para a seqüência de caracteres.Quando terminar, pressione Enter.

    Este exemplo usa IDS_SAMPLE_ADDPAGE para o nome do tipo da nova página de propriedade.

  5. Repita as etapas 3 e 4 usando IDS_SAMPLE_ADDPPG_CAPTION para a identificação e a "Página de propriedade adicionais" para a legenda.

  6. Na.Arquivo CPP da nova classe página propriedade (neste exemplo, CAddtlPropPage) modificar o CAddtlPropPage::CAddtlPropPageFactory::UpdateRegistry , de modo que IDS_SAMPLE_ADDPAGE é passado por AfxOleRegisterPropertyPageClass, como no exemplo a seguir:

    BOOL CAddtlPropPage::CAddtlPropPageFactory::UpdateRegistry(BOOL bRegister)
    {
       if (bRegister)
          return AfxOleRegisterPropertyPageClass(AfxGetInstanceHandle(),
             m_clsid, IDS_SAMPLE_ADDPAGE);
       else
          return AfxOleUnregisterClass(m_clsid, NULL);
    }
    
  7. Modificar o construtor de CAddtlPropPage para que IDS_SAMPLE_ADDPPG_CAPTION é passado para o COlePropertyPage construtor, como segue:

    CAddtlPropPage::CAddtlPropPage() :
       COlePropertyPage(IDD, IDS_SAMPLE_ADDPPG_CAPTION)
    {
    
    }
    

Depois de feitas as modificações necessárias para reconstruir seu projeto e use o contêiner de teste para testar a nova página de propriedade.Consulte testes de propriedades e eventos com o contêiner de teste do para obter informações sobre como acessar o contêiner de teste.

Consulte também

Conceitos

Controles de ActiveX do MFC