Compartilhar via


Controles ActiveX do MFC: páginas de propriedades

As páginas de propriedades permitem que um usuário de controle ActiveX exiba e altere as propriedades de 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

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

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

  • Quando o verbo Propriedades do controle (OLEIVERB_PROPERTIES) é 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 de modelagem que mostra as páginas de propriedades do controle selecionado.

A caixa de diálogo 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 as alterações feitas ou aplicar imediatamente quaisquer alterações ao controle ActiveX.

Caixa de diálogo Propriedades para Circ3.
Caixa de diálogo Propriedades

Este artigo aborda tópicos relacionados ao uso de páginas de propriedades em um controle ActiveX. Elas incluem:

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 propriedade padrão

Se você usar o Assistente de Controle ActiveX para criar seu projeto de controle, o Assistente de Controle ActiveX fornecerá uma classe de página de propriedade padrão para o controle derivado da classe COlePropertyPage. 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 propriedade por padrão, classes de página de propriedade adicionais (também derivadas de COlePropertyPage) devem ser criadas usando o Modo de Exibição de Classe. Para obter mais informações sobre este procedimento, consulte Controles ActiveX do MFC: Adicionando outra página de propriedade personalizada.

Implementar uma página de propriedades (nesse 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 nesse caso), a classe de página de propriedade padrão já existe.

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

  3. Personalize a DoDataExchange função da COlePropertyPageclasse derivada para trocar valores entre o controle de página de propriedade e o controle ActiveX.

Para fins de exemplo, os procedimentos a seguir usam um controle simples (chamado "Amostra"). O exemplo foi criado usando o Assistente de Controle ActiveX e contém apenas a propriedade legenda de estoque.

Adicionando controles a uma página de propriedades

Para adicionar controles a uma página de propriedades

  1. Com o projeto de controle aberto, abra o Modo de Exibição de Recurso.

  2. Clique duas vezes no ícone do diretório de caixa 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, nesse caso, Exemplo.

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

  5. Para este exemplo, um controle de rótulo de texto "Legenda :" 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 suas alterações.

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

Personalizando a função DoDataExchange

A função CWnd::D oDataExchange da página de propriedades permite vincular valores de página de propriedade com os valores reais das propriedades no controle. Para estabelecer links, você deve mapear os campos de página de propriedade apropriados para suas respectivas propriedades de controle.

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

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

Essa função associa a variável de membro m_caption da página de propriedade à Legenda, usando a DDP_TEXT função.

Depois de inserir o controle da página de propriedades, é necessário estabelecer um vínculo entre o controle da página de propriedades, IDC_CAPTION e a propriedade de controle real, Caption, usando a DDP_Text função, conforme descrito acima.

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

Funções de página de propriedade

Nome da função Usar essa 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 corresponder 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 corresponder 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.

Consulte também

Controles MFC ActiveX
Classe COlePropertyPage