Partilhar via


Manipulando o botão Aplicar

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.

Ver também

Folhas de propriedades