Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Normalmente, as fichas de propriedades que se cria serão modais. Ao usar uma folha de propriedades modal, o usuário deve fechar a folha de propriedades antes de usar qualquer outra parte do aplicativo. Este artigo descreve métodos que pode usar para criar uma folha de propriedades não modal que permite ao utilizador manter a folha de propriedades aberta enquanto utiliza outras partes da aplicação.
Para exibir uma folha de propriedades como uma caixa de diálogo sem moderação em vez de como uma caixa de diálogo modal, chame CPropertySheet::Create em vez de DoModal. Você também deve implementar algumas tarefas extras para dar suporte a uma folha de propriedades sem modal.
Uma das tarefas adicionais é a troca de dados entre a folha de propriedades e o objeto externo que está modificando quando a folha de propriedades está aberta. Esta é geralmente a mesma tarefa que para caixas de diálogo padrão não-modais. Parte dessa tarefa é implementar um canal de comunicação entre a folha de propriedades sem janela restrita e o objeto externo ao qual as configurações de propriedade se aplicam. Esta implementação é muito mais fácil se derivares uma classe de CPropertySheet para a tua folha de propriedades sem janelas. Este artigo pressupõe que o fez.
Um método para comunicação entre uma folha de propriedades sem modo modal e o objeto externo (a seleção atual numa vista, por exemplo) é definir um ponteiro da folha de propriedades para o objeto externo. Defina uma função (chamada algo como SetMyExternalObject) na classe derivada CPropertySheet para alterar o ponteiro sempre que o foco mudar de um objeto externo para outro. A SetMyExternalObject função precisa redefinir as configurações de 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 os objetos CPropertyPage pertencentes à CPropertySheet classe.
A maneira mais conveniente de fornecer acesso a páginas de propriedades numa folha de propriedades é incorporar os objetos CPropertyPage no objeto derivado de CPropertySheet. Incorporar CPropertyPage objetos no CPropertySheet objeto derivado difere do design típico para caixas de diálogo modais, onde o dono da folha de propriedades cria os CPropertyPage objetos e os passa para a folha de propriedades por meio de CPropertySheet::AddPage.
Há muitas alternativas de interface do usuário para determinar quando as configurações da folha de propriedades sem janela restrita devem ser aplicadas a um objeto externo. Uma alternativa é aplicar as configurações da página de propriedades atual sempre que o usuário alterar qualquer valor. Outra alternativa é fornecer um botão Aplicar, que permite ao usuário acumular alterações nas páginas de propriedades antes de confirmá-las no objeto externo. Para obter informações sobre como lidar com o botão Aplicar, consulte o artigo Manipulando o botão Aplicar.
Ver também
Folhas de propriedades
Intercâmbio de dados
Trabalhando com caixas de diálogo no MFC