Compartilhar via


Controles ActiveX MFC: páginas de propriedade

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

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

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

  • O contêiner pode exibir a própria caixa de diálogo modeless 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 dos botões que executam tarefas comuns como fechar a caixa de diálogo da página de propriedades, cancelando todas as alterações feitas, ou aplicando imediatamente qualquer alteração no controle ActiveX.

Caixa de diálogo propriedades

Caixa de diálogo Propriedades de Circ3

Este artigo abrange os tópicos a seguir relacionados ao usar páginas de propriedades em um controle ActiveX. Eles incluem:

  • Implementando a página de propriedades padrão para um controle ActiveX

  • Adicionando controles para uma página de propriedades

  • Personalizando a função de DoDataExchange

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

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

Implementando a página de propriedades padrão

Se você usar o assistente de controle ActiveX para criar o projeto de controle, o assistente do controle ActiveX fornece uma classe padrão da página de propriedades do controle derivado de Classe COlePropertyPage. Inicialmente, essa página de propriedades é em branco, mas você pode adicionar qualquer controle da caixa de diálogo ou conjunto de controles. Como o assistente de controle ActiveX cria apenas uma classe da página de propriedades por padrão, as classes de página adicionais de propriedades (também derivadas de COlePropertyPage) devem ser criadas usando a exibição da classe. Para obter mais informações sobre esse procedimento, consulte Controles ActiveX MFC: adicionando outra página de propriedade personalizada.

Implementar uma página de propriedades (nesse caso, a opção) é um processo de três etapas:

Para implementar uma página de propriedades

  1. Adicionar COlePropertyPage- classe derivada ao projeto do controle. Se o projeto foi criado usando o assistente de controle ActiveX (como nesse caso), a classe padrão da página de propriedades já existe.

  2. Use o editor da caixa de diálogo para adicionar todos os controles no modelo de página de propriedades.

  3. Personalizar a função de COlePropertyPage- classe derivada de DoDataExchange aos valores de troca entre o controle da página de propriedades e o controle ActiveX.

Por exemplo, propósitos dos seguintes procedimentos usam um controle simples (denominado “exemplo”). O exemplo foi criado usando o assistente de controle ActiveX e só contém a propriedade de estoque da legenda.

Adicionando controles para uma página de propriedades

Para adicionar controles para uma página de propriedades

  1. Com o projeto de controle, abra a exibição aberta de recursos.

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

  3. Abrir a caixa de diálogo de IDD_PROPPAGE_SAMPLE .

    O assistente de controle ActiveX anexa o nome do projeto ao final da ID da caixa de diálogo, nesse caso, o exemplo.

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

  5. Para este exemplo, a legenda de um controle de rótulo do texto “: ” e um controle da caixa de edição com um identificador de IDC_CAPTION é suficiente.

  6. Clique Salvar na barra de ferramentas para salvar as alterações.

Agora que a interface do usuário foi alterada, deverá vincular a caixa de edição com a propriedade de legenda. Isso é feito na seção a seguir editando a função de CSamplePropPage::DoDataExchange .

Personalizando a função de DoDataExchange

A função de CWnd::DoDataExchange da página de propriedades permite vincular valores da página de propriedades com os valores reais das propriedades no controle. Para estabelecer links, você deve mapear os campos adequados da página de propriedades em suas respectivas propriedades do controle.

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

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

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

Depois que você tiver o controle da página de propriedades inserido, você precisa estabelecer um vínculo entre o controle da página de propriedades, IDC_CAPTION, e a propriedade real de controle, a legenda, usando a função de DDP_Text conforme descrito acima.

Páginas de propriedade (MFC) está disponível para outros tipos de controle da caixa de diálogo, como caixas de seleção, botões de opção, as caixas de listagem. A tabela a seguir lista o conjunto inteiro de funções de 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 de cadeia de caracteres selecionada em uma caixa de combinação com uma propriedade do controle.

DDP_CBString

A cadeia de caracteres selecionada em uma caixa de combinação com uma propriedade do controle. A cadeia de caracteres selecionada pode começar com as mesmas letras que o valor da propriedade mas não precisa corresponde completamente.

DDP_CBStringExact

A cadeia de caracteres selecionada em uma caixa de combinação com uma propriedade do controle. A cadeia de caracteres selecionada e o valor da cadeia de caracteres de propriedade devem corresponder exatamente.

DDP_Check

Uma caixa de seleção com uma propriedade do controle.

DDP_LBIndex

O índice de cadeia de caracteres selecionada em uma caixa de listagem com uma propriedade do controle.

DDP_LBString

A cadeia de caracteres selecionada em uma caixa de listagem com uma propriedade do controle. A cadeia de caracteres selecionada pode começar com as mesmas letras que o valor da propriedade mas não precisa corresponde completamente.

DDP_LBStringExact

A cadeia de caracteres selecionada em uma caixa de listagem com uma propriedade do controle. A cadeia de caracteres selecionada e o valor da cadeia de caracteres de propriedade devem corresponder exatamente.

DDP_Radio

Um botão de opção com uma propriedade do controle.

DDP_Text

Texto com uma propriedade do controle.

Consulte também

Referência

Classe COlePropertyPage

Conceitos

Controles ActiveX MFC