Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Se você usar o mecanismo DDX, defina os valores iniciais das variáveis de membro do objeto de caixa de diálogo, normalmente no manipulador OnInitDialog ou no construtor da caixa de diálogo. Imediatamente antes de a caixa de diálogo ser exibida, o mecanismo DDX do framework transfere os valores das variáveis membros para os controles na caixa de diálogo, onde eles aparecem quando a própria caixa de diálogo é exibida em resposta a DoModal ou Create. A implementação padrão de OnInitDialog em CDialog chama o método UpdateData da classe CWnd para inicializar os controles na caixa de diálogo.
O mesmo mecanismo transfere valores dos controles para as variáveis de membro quando o usuário clica no botão OK (ou sempre que você chama a UpdateData função membro com o argumento TRUE). O mecanismo de validação de dados de caixa de diálogo valida todos os itens de dados para os quais você especificou regras de validação.
A figura a seguir ilustra a troca de dados de diálogo.
Troca de Dados do Diálogo
UpdateData funciona em ambas as direções, conforme especificado pelo parâmetro BOOL passado para ele. Para realizar a troca, UpdateData configura um objeto CDataExchange e chame a substituição da classe de diálogo da função de membro CDialog de DoDataExchange. DoDataExchange usa um argumento do tipo CDataExchange. O CDataExchange objeto passado para UpdateData representa o contexto da troca, definindo informações, como a direção da troca.
Quando você (ou um assistente de código) substituir DoDataExchange, especifique uma chamada para uma função DDX por membro de dados (controle). Cada função DDX sabe como trocar dados em ambas as direções com base no contexto fornecido pelo CDataExchange argumento passado para o seu DoDataExchange por UpdateData.
O MFC fornece muitas funções DDX para diferentes tipos de troca. O exemplo a seguir mostra uma substituição DoDataExchange na qual duas funções DDX e uma função DDV são chamadas:
void CTestDialog::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Check(pDX, IDC_MY_CHECKBOX, m_bVal);
DDX_Text(pDX, IDC_MY_TEXTBOX, m_strName);
DDV_MaxChars(pDX, m_strName, 20);
}
As linhas DDX_ e DDV_ são um mapa de dados. As funções DDX e DDV de exemplo mostradas são para um controle de caixa de seleção e um controle de caixa de edição, respectivamente.
Se o usuário cancelar uma caixa de diálogo modal, a OnCancel função membro encerrará a caixa de diálogo e DoModal retornará o valor IDCANCEL. Nesse caso, nenhum dado é trocado entre a caixa de diálogo e o objeto de diálogo.
Consulte também
Troca e validação de dados da caixa de diálogo
Trabalhando com caixas de diálogo no MFC
Validação de dados da caixa de diálogo