Usando folhas de propriedade no aplicativo
Para usar uma folha de propriedades no seu aplicativo, conclua as seguintes etapas:
Crie um recurso de modelo de caixa de diálogo para cada página de propriedade. Tenha em mente que o usuário pode estar mudando de uma página para outra, portanto, disponha cada página da forma mais consistente possível.
Os modelos de caixa de diálogo para todas as páginas não precisam ter o mesmo tamanho. A estrutura usa o tamanho da maior página para determinar quanto espaço alocar na folha de propriedades para as páginas de propriedades.
Ao criar o recurso de modelo de caixa de diálogo para uma página de propriedades, você deve especificar os seguintes estilos na folha de propriedades das Propriedades da caixa de diálogo:
Defina a caixa de edição Barra de título na página Geral para o texto que você deseja exibir na guia desta página.
Defina a caixa de listagem Estilo na página de Estilos como Filho.
Defina a caixa de listagem Borda na página de Estilos como Fina.
Confirme se a caixa de seleção Barra de títulos na página Estilos está selecionada.
Confirme se a caixa de seleção Desabilitado na página Mais Estilos está selecionada.
Crie uma classe derivada de CPropertyPage correspondente a cada modelo de caixa de diálogo de página de propriedades. Consulte Adicionar uma classe. Escolha
CPropertyPage
como a classe base.Crie variáveis de membro para conter os valores dessa página de propriedades. O processo para adicionar variáveis de membro a uma página de propriedades é exatamente o mesmo de adicionar variáveis de membro a uma caixa de diálogo, pois uma página de propriedades é uma caixa de diálogo especializada. Para obter mais informações, consulte Definir variáveis de membro para controles de caixa de diálogo.
Construa um objeto CPropertySheet no seu código-fonte. Normalmente, você constrói o objeto
CPropertySheet
no manipulador para o comando que exibe a folha de propriedades. Esse objeto representa toda a folha de propriedades. Se você criar uma folha de propriedades modal com a função DoModal, a estrutura fornecerá três botões de comando por padrão: OK, Cancelar e Aplicar. A estrutura não cria botões de comando para folhas de propriedades sem modo criadas com a função Create. Você não precisa derivar uma classe a partir deCPropertySheet
, a não ser que deseje adicionar outros controles (como uma janela de pré-visualização) ou exibir uma folha de propriedades sem modo. Essa etapa é necessária no caso das folhas de propriedades sem modo, porque elas não contêm controles padrão que possam ser usados para fechar a folha de propriedades.Para que cada página seja adicionada à folha de propriedades, faça o seguinte:
Construa um objeto para cada classe derivada
CPropertyPage
que você criou anteriormente neste processo.Chame CPropertySheet::AddPage para cada página.
Normalmente, o objeto que cria a
CPropertySheet
também cria os objetosCPropertyPage
nesta etapa. No entanto, se você implementar uma classe derivadaCPropertySheet
, poderá inserir os objetosCPropertyPage
no objetoCPropertySheet
e chamarAddPage
para cada página do construtor de classe derivadaCPropertySheet
.AddPage
adiciona o objetoCPropertyPage
à lista de páginas da folha de propriedades, mas não cria de fato a janela para essa página. Portanto, não é necessário aguardar até a criação da janela da folha de propriedades para chamarAddPage
; você pode chamarAddPage
a partir do construtor da folha de propriedades.Por padrão, se uma folha de propriedades tiver mais guias do que couber em uma única linha da folha de propriedades, as guias serão empilhadas em várias linhas. Para desabilitar o empilhamento, chame CPropertySheet::EnableStackedTabs com o parâmetro definido como FALSE. Você deve chamar
EnableStackedTabs
ao criar a folha de propriedades.Chame CPropertySheet::DoModal ou Criar para exibir a folha de propriedades. Chame
DoModal
para criar uma folha de propriedades como uma caixa de diálogo modal. Chame Criar para criar a folha de propriedades como uma caixa de diálogo sem modo.Troque dados entre páginas de propriedades e o proprietário da folha de propriedades. Isso é explicado no artigo Troca de dados.
Para obter um exemplo de como usar folhas de propriedades, consulte o PROPDLG de exemplo geral do MFC.