Partilhar via


Controles ActiveX MFC: Páginas de propriedades

As páginas de propriedades permitem que um usuário de controle ActiveX exiba e altere as propriedades do controle ActiveX. Essas propriedades são acessadas invocando uma caixa de diálogo de propriedades de controle, que contém uma ou mais páginas de propriedades que fornecem uma interface gráfica personalizada para exibir e editar as propriedades de controle.

Importante

ActiveX é uma tecnologia herdada que não deve ser usada para novos desenvolvimentos. Para obter mais informações sobre tecnologias modernas que substituem o ActiveX, consulte Controles ActiveX.

As páginas de propriedades do controle ActiveX são exibidas de duas maneiras:

  • Quando o verbo Properties (OLEIVERB_PROPERTIES) do controle é invocado, o controle abre uma caixa de diálogo de propriedade modal que contém as páginas de propriedades do controle.

  • O contêiner pode exibir sua própria caixa de diálogo sem janela restrita que mostra as páginas de propriedades do controle selecionado.

A caixa de diálogo de propriedades (ilustrada na figura a seguir) consiste em uma área para exibir a página de propriedades atual, guias para alternar entre páginas de propriedades e uma coleção de botões que executam tarefas comuns, como fechar a caixa de diálogo da página de propriedades, cancelar quaisquer alterações feitas ou aplicar imediatamente quaisquer alterações no controle ActiveX.

A caixa de diálogo de propriedades para o Circ3.
Caixa de diálogo Propriedades

Este artigo aborda tópicos relacionados ao uso de páginas de propriedades em um controle ActiveX. Estes são, entre outros:

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

Para obter informações sobre como usar folhas de propriedades em um aplicativo MFC diferente de um controle ActiveX, consulte Folhas de propriedades.

Implementando a página de propriedades padrão

Se você usar o Assistente de controle ActiveX para criar seu projeto de controle, o Assistente de controle ActiveX fornece uma classe de página de propriedades padrão para o controle derivado de COlePropertyPage classe. Inicialmente, essa página de propriedades está em branco, mas você pode adicionar qualquer controle de caixa de diálogo ou conjunto de controles a ela. Como o Assistente de Controle ActiveX cria apenas uma classe de página de propriedades por padrão, classes de página de propriedades adicionais (também derivadas de COlePropertyPage) devem ser criadas usando o Class View. Para obter mais informações sobre este procedimento, consulte Controles ActiveX MFC: Adicionando outra página de propriedades personalizadas.

A implementação de uma página de propriedades (neste caso, o padrão) é um processo de três etapas:

Para implementar uma página de propriedades

  1. Adicione uma COlePropertyPageclasse derivada ao projeto de controle. Se o projeto foi criado usando o Assistente de controle ActiveX (como neste caso), a classe de página de propriedades padrão já existe.

  2. Use o editor de diálogo para adicionar quaisquer controles ao modelo de página de propriedades.

  3. Personalize a função da classe derivada de DoDataExchange para trocar valores entre o controlo da página de propriedades e o controlo ActiveX.

Por exemplo, os procedimentos a seguir usam um controle simples (chamado "Exemplo"). A amostra foi criada usando o Assistente de Controle ActiveX e contém apenas a propriedade padrão Caption.

Adicionando controles a uma página de propriedades

Para adicionar controles a uma página de propriedades

  1. Com o seu projeto de controlo aberto, abra a Vista de Recursos.

  2. Clique duas vezes no ícone do diretório de diálogo .

  3. Abra a caixa de diálogo IDD_PROPPAGE_SAMPLE.

    O Assistente de controle ActiveX acrescenta o nome do projeto ao final da ID da caixa de diálogo, neste caso, Exemplo.

  4. Arraste e solte o controle selecionado da Caixa de Ferramentas na área da caixa de diálogo.

  5. Para este exemplo, um controle de rótulo de texto "Caption :" e um controle de caixa de edição com um identificador de IDC_CAPTION são suficientes.

  6. Clique em Salvar na Barra de Ferramentas para salvar as alterações.

Agora que a interface do usuário foi modificada, você precisa vincular a caixa de edição com a propriedade Caption. Isso é feito na seção a seguir, editando a CSamplePropPage::DoDataExchange função.

Personalizando a função DoDataExchange

A função CWnd::DoDataExchange da sua página de propriedades permite associar os valores da página de propriedades com os valores reais das propriedades no controlo. Para estabelecer links, você deve mapear os campos apropriados da página de propriedades para suas respetivas propriedades de controle.

Esses mapeamentos são implementados usando as funções da página de propriedades DDP_. As funções DDP_ funcionam como as funções DDX_ usadas em caixas de diálogo MFC padrão, com uma exceção. Além da referência a uma variável membro, DDP_ funções tomam o nome da propriedade de controle. A seguir está uma entrada típica na DoDataExchange função para uma página de propriedades.

DDP_Text(pDX, IDC_CAPTION, m_caption, _T("Caption"));

Esta função associa a variável membro m_caption da página de propriedades à legenda, usando a função DDP_TEXT.

Depois de inserir o controle de página de propriedades, você precisa estabelecer um link entre o controle de página de propriedades, IDC_CAPTION, e a propriedade de controle real, Caption, usando a DDP_Text função descrita acima.

As Páginas de Propriedades estão disponíveis para outros tipos de controle de diálogo, como caixas de seleção, botões de opção e caixas de listagem. A tabela abaixo lista todo o conjunto de funções DDP_ da página de propriedades e suas finalidades.

Funções da página de propriedades

Nome da função Use esta função para vincular
DDP_CBIndex O índice da cadeia de caracteres selecionada em uma caixa de combinação com uma propriedade de controle.
DDP_CBString A cadeia de caracteres selecionada em uma caixa de combinação com uma propriedade de controle. A cadeia de caracteres selecionada pode começar com as mesmas letras que o valor da propriedade, mas não precisa correspondê-la totalmente.
DDP_CBStringExact A cadeia de caracteres selecionada em uma caixa de combinação com uma propriedade de controle. A cadeia de caracteres selecionada e o valor da cadeia de caracteres da propriedade devem corresponder exatamente.
DDP_Check Uma caixa de seleção com uma propriedade de controle.
DDP_LBIndex O índice da cadeia de caracteres selecionada em uma caixa de listagem com uma propriedade de controle.
DDP_LBString A cadeia de caracteres selecionada em uma caixa de listagem com uma propriedade de controle. A cadeia de caracteres selecionada pode começar com as mesmas letras que o valor da propriedade, mas não precisa correspondê-la totalmente.
DDP_LBStringExact A cadeia de caracteres selecionada em uma caixa de listagem com uma propriedade de controle. A cadeia de caracteres selecionada e o valor da cadeia de caracteres da propriedade devem corresponder exatamente.
DDP_Radio Um botão de opção com uma propriedade de controle.
DDP_Text Texto com uma propriedade de controle.

Ver também

Controles ActiveX MFC
COlePropertyPage Classe