Controles ActiveX MFC: adicionando outra página de propriedade personalizada
Ocasionalmente, um controle ActiveX terá mais propriedades de que podem razoavelmente ajuste em uma página de propriedades. Nesse caso, você pode adicionar páginas de propriedades no controle ActiveX para exibir essas propriedades.
Este artigo descreve adicionar novas páginas de propriedades a um controle ActiveX que já tem pelo menos uma página de propriedades. Para obter mais informações sobre como adicionar as páginas de propriedades de estoque (fonte, cor ou imagem,), consulte o artigo Controles ActiveX MFC: Usando as páginas de propriedades de estoque.
Os procedimentos a seguir usam uma estrutura de exemplo do controle ActiveX criada pelo assistente de controle ActiveX. Como consequência, os nomes da classe e os identificadores são exclusivas deste exemplo.
Para obter mais informações sobre como usar páginas de propriedades em um controle ActiveX, consulte os artigos a seguir:
Controles ActiveX MFC: Usando as páginas de propriedades de estoque
Dica
É altamente recomendável que as novas páginas de propriedades ela segue o padrão do tamanho para páginas de propriedades do controle ActiveX.As páginas de propriedades de estoque de imagem e cor abrangem as unidades da caixa de diálogo 250x62 (DLU).A página de propriedades de fonte padrão é 250x110 DLUs.A página de propriedades padrão criada pelo assistente de controle ActiveX usa o padrão de 250x62 DLU.
Para inserir um novo modelo da página de propriedades do projeto
Com o projeto de controle, abra a exibição aberta de recursos no espaço de trabalho do projeto.
Clique com o botão direito do mouse na exibição do recurso para abrir o menu de atalho e clique Adicionar Recurso.
Expanda o nó de Caixa de Diálogo , e selecione IDD_OLE_PROPPAGE_SMALL.
Clique New para adicionar o recurso ao seu projeto.
Selecione o novo modelo da página de propriedades para atualizar a janela Propriedades.
Insira um novo valor para a propriedade de ID . Este exemplo usa IDD_PROPPAGE_NEWPAGE.
Clique Salvar na barra de ferramentas.
Para associar um novo modelo com uma classe
Exibição aberta da classe.
Clique com o botão direito do mouse na exibição da classe para abrir o menu de atalho.
No menu de atalho, clique Adicionar e clique em Adicionar Classe.
Isso abre a caixa de diálogo de Adicione a classe .
Clique duas vezes no modelo de Classe do MFC .
Na caixa de Nome da classe em Assistente da classe de MFC, digite um nome para a nova classe da caixa de diálogo. (Neste exemplo, CAddtlPropPage.)
Para que os nomes de arquivo de alterações, clique em Alterar. Digite os nomes para sua implementação e arquivos de cabeçalho, ou aceite os nomes padrão.
Na caixa de Classe Base , COlePropertyPageselecione.
Na caixa de ID de Diálogo , IDD_PROPPAGE_NEWPAGEselecione.
Clique em Concluir para criar a classe.
Para permitir o acesso de usuário de controle a essa nova página de propriedades, faça as seguintes alterações na seção macro de IDs de página de propriedades de controle (localizada no arquivo de implementação do controle):
BEGIN_PROPPAGEIDS(CMyAxUICtrl, 2)
PROPPAGEID(CMyAxUIPropPage::guid)
PROPPAGEID(CAddtlPropPage::guid)
END_PROPPAGEIDS(CMyAxUICtrl)
Observe que você deve aumentar o segundo parâmetro de macro de BEGIN_PROPPAGEIDS () a contagem de página de propriedades de 1 a 2.
Você também deve modificar o arquivo do arquivo de implementação de controle (.CPP) para incluir o cabeçalho (. H) arquivo da nova classe da página de propriedades.
A próxima etapa envolve criar dois novos recursos de cadeia de caracteres que fornecer um nome de tipo e uma legenda para a nova página de propriedades.
Para adicionar novos recursos de cadeia de caracteres para uma página de propriedades
Com o projeto de controle, abra a exibição aberta de recursos.
Clique duas vezes na pasta de Tabela de Cadeias de Caracteres e clique duas vezes no recurso existente da tabela de cadeia de caracteres ao qual você deseja adicionar uma cadeia de caracteres.
Isso abre a tabela de cadeia de caracteres em uma janela.
Selecione a linha em branco ao final da tabela de cadeia de caracteres e digite o texto, a legenda, de cadeia de caracteres: por exemplo, “página de propriedades adicionais.”
Isso abre uma página de String Properties que mostra Legenda e caixas de ID . A caixa de Legenda contém a cadeia de caracteres que você digitou.
Na caixa de ID , selecione ou digite uma ID para a cadeia de caracteres. Pressione enter quando você terminar.
Este exemplo usa IDS_SAMPLE_ADDPAGE para o nome do tipo da nova página de propriedades.
Repita IDS_SAMPLE_ADDPPG_CAPTION de utilização das etapas 3 e 4 para o ID “e a página de propriedades adicionais” para a legenda.
No arquivo de .CPP de sua nova classe da página de propriedades (neste exemplo, CAddtlPropPage) modificar CAddtlPropPage::CAddtlPropPageFactory::UpdateRegistry de forma 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); }
Modifique o construtor de CAddtlPropPage de forma que IDS_SAMPLE_ADDPPG_CAPTION é passado para o construtor de COlePropertyPage , como segue:
CAddtlPropPage::CAddtlPropPage() : COlePropertyPage(IDD, IDS_SAMPLE_ADDPPG_CAPTION) { }
Depois que você fez a recriação de alterações necessárias para seu projeto e usa o contêiner de teste para testar a nova página de propriedades. Consulte Propriedades e eventos de teste com contêineres de teste para obter mais informações sobre como acessar o contêiner de teste.