Compartilhar via


Como especificar páginas de propriedades

Ao criar um controle ActiveX, você geralmente deseja associá-lo a páginas de propriedades que podem ser usadas para definir as propriedades do controle. Os contêineres de controle usam a interface ISpecifyPropertyPages para descobrir quais páginas de propriedades podem ser usadas para definir as propriedades do controle. Você precisará implementar essa interface em seu controle.

Para implementar ISpecifyPropertyPages o uso da ATL, execute as seguintes etapas:

  1. Derive sua classe de ISpecifyPropertyPagesImpl.

  2. Adicione uma entrada para ISpecifyPropertyPages para o mapa COM da sua classe.

  3. Adicione uma entrada PROP_PAGE ao mapa de propriedades para cada página associada ao controle.

Observação

Ao gerar um controle padrão usando o Assistente de Controle da ATL, você só precisará adicionar as entradas PROP_PAGE ao mapa de propriedades. O assistente gera o código necessário para as outras etapas.

Contêineres bem comportados exibirão as páginas de propriedade especificadas na mesma ordem que as entradas de PROP_PAGE no mapa de propriedades. Em geral, você deve colocar entradas de página de propriedade padrão após as entradas de suas páginas personalizadas no mapa de propriedades, para que os usuários vejam as páginas específicas do controle primeiro.

Exemplo

A classe a seguir para um controle de calendário usa a interface ISpecifyPropertyPages para informar aos contêineres que suas propriedades podem ser definidas usando uma página de data personalizada e a página de cores de estoque.

class ATL_NO_VTABLE CMyCtrl :
   OtherInterfaces
   public ISpecifyPropertyPagesImpl<CMyCtrl>
{
public:

BEGIN_COM_MAP(CMyCtrl)
   OtherComMapEntries
   COM_INTERFACE_ENTRY(ISpecifyPropertyPages)
END_COM_MAP()

BEGIN_PROP_MAP(CMyCtrl)
   OtherPropMapEntries
   PROP_PAGE(CLSID_DatePage)
   PROP_PAGE(CLSID_StockColorPage)
END_PROP_MAP()

   // Remainder of class declaration omitted.

Confira também

Páginas de propriedades
Exemplo de páginas ATL