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.
As folhas de propriedades têm um recurso que as caixas de diálogo padrão não têm: elas permitem que o usuário aplique as alterações feitas antes de fechar a folha de propriedades. Isso é feito usando o botão Aplicar. Este artigo discute os métodos que você pode usar para implementar esse recurso corretamente.
As caixas de diálogo modais geralmente aplicam as configurações a um objeto externo quando o usuário clica em OK para fechar a caixa de diálogo. O mesmo é verdadeiro para uma folha de propriedades: quando o usuário clica em OK, as novas configurações na folha de propriedades entram em vigor.
No entanto, convém permitir que o usuário salve as configurações sem precisar fechar a caixa de diálogo da folha de propriedades. Esta é a função do botão Aplicar. O botão Aplicar aplica as configurações atuais em todas as páginas de propriedades ao objeto externo, em vez de aplicar apenas as configurações atuais da página ativa no momento.
Por padrão, o botão Aplicar está sempre desativado. Você deve escrever código para habilitar o botão Aplicar nos momentos apropriados e deve escrever código para implementar o efeito de Aplicar, conforme explicado abaixo.
Se não desejar oferecer a funcionalidade Aplicar ao utilizador, não é necessário remover o botão Aplicar. Você pode deixá-lo desativado, como será comum entre os aplicativos que usam o suporte de folha de propriedades padrão disponível em versões futuras do Windows.
Para denunciar uma página como sendo modificada e ativar o botão Aplicar, chame CPropertyPage::SetModified( TRUE ). Se alguma das páginas relatar ser modificada, o botão Aplicar permanecerá habilitado, independentemente de a página ativa no momento ter sido modificada.
Você deve chamar CPropertyPage::SetModified sempre que o usuário alterar qualquer configuração na página. Uma maneira de detetar quando um usuário altera uma configuração na página é implementar manipuladores de notificação de alteração para cada um dos controles na página de propriedades, como EN_CHANGE ou BN_CLICKED.
Para implementar o efeito do botão Aplicar, a folha de propriedades deve informar seu proprietário, ou algum outro objeto externo no aplicativo, para aplicar as configurações atuais nas páginas de propriedades. Ao mesmo tempo, o separador de propriedades deve desativar o botão Aplicar ao chamar CPropertyPage::SetModified( FALSE ) em todas as páginas que tenham aplicado as suas modificações ao objeto externo.
Para obter um exemplo desse processo, consulte o exemplo geral MFC PROPDLG.