Criando uma sem janela restrita folha de propriedades

Normalmente, o propriedade folhas que você criar será restritas.Ao usar uma janela restrita folha de propriedades, o usuário deve fechar o folha de propriedades antes de usar qualquer Outros parte do aplicativo.Este artigo descreve métodos que você pode usar para criar uma sem janela restrita folha de propriedades que permite que o usuário manter o folha de propriedades aberto enquanto estiver usando outras partes do aplicativo.

Para exibir um folha de propriedades sistema autônomo uma caixa de diálogo sem janela restrita em vez de sistema autônomo uma caixa de diálogo modal, telefonar CPropertySheet::criar em vez de DoModal.Você também deve implementar algumas tarefas adicionais para dar suporte a uma sem janela restrita folha de propriedades.

Uma das tarefas adicionais está trocando dados entre o folha de propriedades e o objeto externo está modificando quando o folha de propriedades está aberto.Isso é geralmente a mesma tarefa sistema autônomo para caixas de diálogo sem janela restrita padrão.Parte dessa tarefa é implementar um canal de comunicação entre a folha de propriedades sem janela restrita e o objeto externo ao qual se aplicam as configurações de propriedade.Essa implementação é muito mais fácil se você derivar uma classe de CpropriedadeSheet para seu sem janela restrita propriedade folha.Este artigo pressupõe que você fez.

Um método para comunicação entre a folha de propriedades sem janela restrita e o externo (a seleção corrente em um modo de exibição, por exemplo) do objeto é definir um ponteiro de folha de propriedades para o objeto externo.Definir uma função (chamada algo como SetMyExternalObject) na CPropertySheet-derivada da classe para alterar o ponteiro sempre que o foco é alterado de um objeto externo para outro. The SetMyExternalObject função precisar reiniciar as configurações para cada página de propriedades para refletir o objeto externo recém-selecionado. Para fazer isso, a SetMyExternalObject função deve ser capaz de acessar o CPropertyPage objetos que pertencem à CPropertySheet classe.

A maneira mais conveniente para fornecer acesso a páginas de propriedade em uma folha de propriedades é incorporar o CPropertyPage objetos na CPropertySheet-derivados do objeto. A incorporação de CPropertyPage objetos na CPropertySheet-objeto derivado difere o design típico de caixas caixa de diálogo modal, em que o proprietário do folha de propriedades cria o CPropertyPage objetos e os passa para o folha de propriedades via CPropertySheet::AddPage.

Há muitas alternativas de interface do usuário para determinar quando as configurações da sem janela restrita propriedade folha deve ser aplicada a um objeto externo.Uma alternativa é aplicar as configurações do corrente propriedade sempre que o usuário altera qualquer valor de página.Outra alternativa é fornecer um botão Aplicar, que permite ao usuário acumular as alterações em páginas de propriedades antes de confirmá-las para o objeto externo.Para obter informações sobre maneiras de lidar com o botão Aplicar, consulte o artigo Lidar com o botão Aplicar.

Consulte também

Conceitos

Folhas de propriedade (MFC)

Ciclo de vida de uma caixa de diálogo

Referência

Trocando dados