Classe CDataExchange
Dá suporte às rotinas de DDX (troca de dados de caixa de diálogo) e DDV (validação de dados de caixa de diálogo) usadas pelas classes do Microsoft Foundation.
Sintaxe
class CDataExchange
Membros
Construtores públicos
Nome | Descrição |
---|---|
CDataExchange::CDataExchange | Constrói um objeto CDataExchange . |
Métodos públicos
Nome | Descrição |
---|---|
CDataExchange::Fail | Chamado quando a validação falha. Redefine o foco para o controle anterior e gera uma exceção. |
CDataExchange::PrepareCtrl | Prepara o controle especificado para troca ou validação de dados. Use para controles que não sejam de edição. |
CDataExchange::PrepareEditCtrl | Prepara o controle de edição especificado para troca ou validação de dados. |
CDataExchange::PrepareOleCtrl | Prepara o controle OLE especificado para troca ou validação de dados. Use para controles que não sejam de edição. |
Membros de Dados Públicos
Nome | Descrição |
---|---|
CDataExchange::m_bSaveAndValidate | Sinalizador para a direção de DDX e DDV. |
CDataExchange::m_pDlgWnd | A caixa de diálogo ou a janela onde a troca de dados ocorre. |
Comentários
CDataExchange
não tem uma classe base.
Use essa classe se você estiver escrevendo rotinas de troca de dados para tipos de dados ou controles personalizados ou se estiver escrevendo suas próprias rotinas de validação de dados. Para obter mais informações sobre como escrever suas próprias rotinas de DDX e DDV, consulte a Nota Técnica 26. Para obter uma visão geral de DDX e DDV, consulte Troca e validação de dados de caixa de diálogo e Caixas de diálogo.
Um objeto CDataExchange
fornece as informações de contexto necessárias para que DDX e DDV ocorram. O sinalizador m_bSaveAndValidate é FALSE quando a DDX é usada para preencher os valores iniciais de controles de caixa de diálogo de membros de dados. O sinalizador m_bSaveAndValidate é TRUE quando a DDX é usada para definir os valores atuais dos controles de caixa de diálogo em membros de dados e quando a DDV é usada para validar os valores de dados. Se a validação de DDV falhar, o procedimento DDV exibirá uma caixa de mensagem explicando o erro de entrada. Em seguida, o procedimento DDV chamará Fail
para redefinir o foco para o controle incorreto e lançará uma exceção para interromper o processo de validação.
Hierarquia de herança
CDataExchange
Requisitos
Cabeçalho: afxwin.h
CDataExchange::CDataExchange
Chame essa função membro para construir um objeto CDataExchange
.
CDataExchange(
CWnd* pDlgWnd,
BOOL bSaveAndValidate);
Parâmetros
pDlgWnd
Um ponteiro para a janela pai que contém o controle. Normalmente, esse é um objeto derivado do CDialog.
bSaveAndValidate
Se TRUE, esse objeto valida os dados e grava dados dos controles nos membros. Se FALSE, esse objeto moverá dados de membros para controles.
Comentários
Construa você mesmo um objeto CDataExchange
para armazenar informações extras no objeto de troca de dados para passar para a função membro CWnd::DoDataExchange da janela.
Exemplo
CYourDataExchange dx(this, FALSE);
try
{
DoDataExchange(&dx);
}
catch (CUserException *pe)
{
// some part of the exchange went wrong
// but the user has already been notified
pe->Delete();
}
CDataExchange::Fail
A estrutura chama essa função membro quando uma operação de DDV (validação de dados de caixa de diálogo) falha.
void Fail();
Comentários
Fail
restaura o foco e a seleção para o controle cuja validação falhou (se houver um controle a ser restaurado). Em seguida, Fail
gera uma exceção do tipo CUserException para interromper o processo de validação. A exceção faz com que uma caixa de mensagem explicando o erro seja exibida. Depois que a validação de DDV falhar, o usuário poderá reinserir dados no controle incorreto.
Os implementadores de rotinas DDV personalizadas podem chamar Fail
de suas rotinas quando uma validação falha.
Para obter mais informações sobre como escrever suas próprias rotinas de DDX e DDV, consulte a Nota Técnica 26. Para obter uma visão geral da DDX e da DDV, consulte Troca e validação de dados da caixa de diálogo e Tópicos da caixa de diálogo.
CDataExchange::m_bSaveAndValidate
Esse sinalizador indica a direção de uma operação de troca de dados de caixa de diálogo (DDX).
BOOL m_bSaveAndValidate;
Comentários
O sinalizador será diferente de zero se o objeto CDataExchange
estiver sendo usado para mover dados dos controles de caixa de diálogo para membros de dados da classe de diálogo após o usuário editar os controles. O sinalizador será zero se o objeto estiver sendo usado para inicializar controles de caixa de diálogo de membros de dados da classe de diálogo.
O sinalizador também será diferente de zero durante a DDV (validação de dados de caixa de diálogo).
Para obter mais informações sobre como escrever suas próprias rotinas de DDX e DDV, consulte a Nota Técnica 26. Para obter uma visão geral da DDX e da DDV, consulte Troca e validação de dados da caixa de diálogo e Tópicos da caixa de diálogo.
CDataExchange::m_pDlgWnd
Contém um ponteiro para o objeto CWnd no qual a DDX (troca de dados de caixa de diálogo) ou a DDV (validação) está ocorrendo.
CWnd* m_pDlgWnd;
Comentários
Esse objeto geralmente é um CDialog. Os implementadores de rotinas DDX ou DDV personalizadas podem usar esse ponteiro para obter acesso à janela de caixa de diálogo que contém os controles em que estão operando.
Para obter mais informações sobre como escrever suas próprias rotinas de DDX e DDV, consulte a Nota Técnica 26. Para obter uma visão geral da DDX e da DDV, consulte Troca e validação de dados da caixa de diálogo e Tópicos da caixa de diálogo.
CDataExchange::PrepareCtrl
A estrutura chama essa função membro para preparar o controle especificado para a DDX (troca de dados de caixa de diálogo) e a DDV (validação).
HWND PrepareCtrl(int nIDC);
Parâmetros
nIDC
A ID do controle a ser preparada para DDX ou DDV.
Valor de retorno
O HWND do controle que está sendo preparado para DDX ou DDV.
Comentários
Use PrepareEditCtrl para editar controles; use essa função membro para todos os outros controles.
A preparação consiste em armazenar o HWND do controle na classe CDataExchange
. A estrutura usa esse identificador para restaurar o foco para o controle que estava anteriormente em foco no caso de uma falha de DDX ou DDV.
Os implementadores de rotinas DDX ou DDV personalizadas devem chamar PrepareCtrl
para todos os controles não editados para os quais estão trocando dados por meio de DDX ou validando dados por meio de DDV.
Para obter mais informações sobre como escrever suas próprias rotinas de DDX e DDV, consulte a Nota Técnica 26. Para obter uma visão geral da DDX e da DDV, consulte Troca e validação de dados da caixa de diálogo e Tópicos da caixa de diálogo.
CDataExchange::PrepareEditCtrl
A estrutura chama essa função membro para preparar o controle de edição especificado para DDX (troca de dados de caixa de diálogo) e DDV (validação).
HWND PrepareEditCtrl(int nIDC);
Parâmetros
nIDC
A ID do controle de edição a ser preparada para DDX ou DDV.
Valor de retorno
O HWND do controle de edição que está sendo preparado para DDX ou DDV.
Comentários
Use PrepareCtrl para todos os controles não editados.
A preparação consiste em duas coisas. Primeiro, PrepareEditCtrl
armazena o HWND do controle na classe CDataExchange
. A estrutura usa esse identificador para restaurar o foco para o controle que estava anteriormente em foco no caso de uma falha de DDX ou DDV. Depois, PrepareEditCtrl
define um sinalizador na classe CDataExchange
para indicar que o controle cujos dados estão sendo trocados ou validados é um controle de edição.
Os implementadores de rotinas DDX ou DDV personalizadas devem chamar PrepareEditCtrl
para todos os controles de edição para os quais estão trocando dados por meio de DDX ou validando dados por meio de DDV.
Para obter mais informações sobre como escrever suas próprias rotinas de DDX e DDV, consulte a Nota Técnica 26. Para obter uma visão geral da DDX e da DDV, consulte Troca e validação de dados da caixa de diálogo e Tópicos da caixa de diálogo.
CDataExchange::PrepareOleCtrl
A estrutura chama essa função membro para preparar o controle OLE especificado para DDX (troca de dados de caixa de diálogo) e DDV (validação).
COleControlSite* PrepareOleCtrl(int nIDC);
Parâmetros
nIDC
A ID do controle OLE a ser preparada para DDX ou DDV.
Valor de retorno
Um ponteiro para o site do controle OLE.
Comentários
Use PrepareEditCtrl para editar controles ou PrepareCtrl para todos os outros controles que não sejam OLE.
Os implementadores de rotinas DDX ou DDV personalizadas devem chamar PrepareOleCtrl
para todos os controles OLE para os quais estão trocando dados por meio de DDX ou validando dados por meio de DDV.
Para obter mais informações sobre como escrever suas próprias rotinas de DDX e DDV, consulte a Nota Técnica 26. Para obter uma visão geral da DDX e da DDV, consulte Troca e validação de dados da caixa de diálogo e Tópicos da caixa de diálogo.
Confira também
Exemplo de VIEWEX do MFC
Gráfico da hierarquia
CWnd::DoDataExchange
CWnd::UpdateData