다음을 통해 공유


CDataExchange 클래스

Microsoft Foundation 클래스에서 사용되는 DDX(대화 상자 데이터 교환) 및 DDV(대화 상자 데이터 유효성 검사) 루틴을 지원합니다.

구문

class CDataExchange

멤버

공용 생성자

속성 설명
CDataExchange::CDataExchange CDataExchange 개체를 생성합니다.

공용 메서드

이름 설명
CDataExchange::Fail 유효성 검사에 실패할 때 호출됩니다. 포커스를 이전 컨트롤로 다시 설정하여 예외를 throw합니다.
CDataExchange::P repareCtrl 데이터 교환 또는 유효성 검사를 위해 지정된 컨트롤을 준비합니다. nonedit 컨트롤에 사용합니다.
CDataExchange::P repareEditCtrl 데이터 교환 또는 유효성 검사를 위해 지정된 편집 컨트롤을 준비합니다.
CDataExchange::P repareOleCtrl 데이터 교환 또는 유효성 검사를 위해 지정된 OLE 컨트롤을 준비합니다. nonedit 컨트롤에 사용합니다.

공용 데이터 멤버

이름 설명
CDataExchange::m_bSaveAndValidate DDX 및 DDV 방향에 대한 플래그입니다.
CDataExchange::m_pDlgWnd 데이터 교환이 발생하는 대화 상자 또는 창입니다.

설명

CDataExchange 에는 기본 클래스가 없습니다.

사용자 지정 데이터 형식 또는 컨트롤에 대한 데이터 교환 루틴을 작성하거나 사용자 고유의 데이터 유효성 검사 루틴을 작성하는 경우 이 클래스를 사용합니다. 고유한 DDX 및 DDV 루틴을 작성하는 방법에 대한 자세한 내용은 Technical Note 26을 참조하세요. DDX 및 DDV에 대한 개요는 대화 상자 데이터 교환 및 유효성 검사 및 대화 상자를 참조하세요.

개체는 CDataExchange DDX 및 DDV가 수행되는 데 필요한 컨텍스트 정보를 제공합니다. DDX를 사용하여 데이터 멤버에서 대화 상자 컨트롤의 초기 값을 채우는 경우 플래그 m_bSaveAndValidate FALSE입니다. DDX를 사용하여 대화 상자 컨트롤의 현재 값을 데이터 멤버로 설정하고 DDV를 사용하여 데이터 값의 유효성을 검사할 때 플래그 m_bSaveAndValidate TRUE입니다. DDV 유효성 검사에 실패하면 DDV 프로시저에 입력 오류를 설명하는 메시지 상자가 표시됩니다. 그런 다음 DDV 프로시저가 호출 Fail 하여 포커스를 잘못된 컨트롤로 다시 설정하고 예외를 throw하여 유효성 검사 프로세스를 중지합니다.

상속 계층 구조

CDataExchange

요구 사항

헤더: afxwin.h

CDataExchange::CDataExchange

이 멤버 함수를 호출하여 개체를 생성합니다 CDataExchange .

CDataExchange(
    CWnd* pDlgWnd,
    BOOL bSaveAndValidate);

매개 변수

pDlgWnd
컨트롤이 포함된 부모 창에 대한 포인터입니다. 일반적으로 CDialog 파생 개체입니다.

bSaveAndValidate
TRUE이면 이 개체는 데이터의 유효성을 검사한 다음 컨트롤의 데이터를 멤버에 씁니다. FALSE이면 이 개체는 멤버에서 컨트롤로 데이터를 이동합니다.

설명

개체를 CDataExchange 직접 생성하여 데이터 교환 개체에 추가 정보를 저장하여 창의 CWnd::D oDataExchange 멤버 함수에 전달합니다.

예시

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

DDV(대화 상자 데이터 유효성 검사) 작업이 실패하면 프레임워크에서 이 멤버 함수를 호출합니다.

void Fail();

설명

Fail 는 유효성 검사에 실패한 컨트롤에 포커스 및 선택을 복원합니다(복원할 컨트롤이 있는 경우). Fail그런 다음, CUserException 형식의 예외를 throw하여 유효성 검사 프로세스를 중지합니다. 예외로 인해 오류를 설명하는 메시지 상자가 표시됩니다. DDV 유효성 검사에 실패하면 사용자가 잘못된 컨트롤의 데이터를 다시 입력할 수 있습니다.

사용자 지정 DDV 루틴의 구현자는 유효성 검사가 실패할 때 해당 루틴에서 호출 Fail 할 수 있습니다.

고유한 DDX 및 DDV 루틴을 작성하는 방법에 대한 자세한 내용은 Technical Note 26을 참조하세요. DDX 및 DDV에 대한 개요는 대화 상자 데이터 교환 및 유효성 검사 및 대화 상자 항목을 참조하세요.

CDataExchange::m_bSaveAndValidate

이 플래그는 DDX(대화 상자 데이터 교환) 작업의 방향을 나타냅니다.

BOOL m_bSaveAndValidate;

설명

사용자가 컨트롤을 편집한 후 대화 상자 컨트롤에서 대화 상자 클래스 데이터 멤버로 데이터를 이동하는 데 개체를 사용하는 경우 CDataExchange 플래그는 0이 아닌 값입니다. 개체를 사용하여 대화 클래스 데이터 멤버의 대화 상자 컨트롤을 초기화하는 경우 플래그는 0입니다.

DDV(대화 상자 데이터 유효성 검사) 중에도 플래그가 0이 아닌 플래그입니다.

고유한 DDX 및 DDV 루틴을 작성하는 방법에 대한 자세한 내용은 Technical Note 26을 참조하세요. DDX 및 DDV에 대한 개요는 대화 상자 데이터 교환 및 유효성 검사 및 대화 상자 항목을 참조하세요.

CDataExchange::m_pDlgWnd

DDX(대화 상자 데이터 교환) 또는 DDV(유효성 검사)가 수행되는 CWnd 개체에 대한 포인터를 포함합니다.

CWnd* m_pDlgWnd;

설명

이 개체는 일반적으로 CDialog 개체입니다. 사용자 지정 DDX 또는 DDV 루틴의 구현자는 이 포인터를 사용하여 작동 중인 컨트롤이 포함된 대화 상자 창에 액세스할 수 있습니다.

고유한 DDX 및 DDV 루틴을 작성하는 방법에 대한 자세한 내용은 Technical Note 26을 참조하세요. DDX 및 DDV에 대한 개요는 대화 상자 데이터 교환 및 유효성 검사 및 대화 상자 항목을 참조하세요.

CDataExchange::P repareCtrl

프레임워크는 이 멤버 함수를 호출하여 DDX(대화 상자 데이터 교환) 및 유효성 검사(DDV)에 대해 지정된 컨트롤을 준비합니다.

HWND PrepareCtrl(int nIDC);

매개 변수

nIDC
DDX 또는 DDV에 대해 준비할 컨트롤의 ID입니다.

Return Value

DDX 또는 DDV에 대해 준비 중인 컨트롤의 HWND입니다.

설명

편집 컨트롤 대신 PrepareEditCtrl을 사용합니다. 다른 모든 컨트롤에 이 멤버 함수를 사용합니다.

준비는 클래스에 컨트롤의 HWND를 저장하는 것으로 CDataExchange 구성됩니다. 프레임워크는 이 핸들을 사용하여 DDX 또는 DDV 오류가 발생할 경우 이전에 포커스가 집중된 컨트롤로 포커스를 복원합니다.

사용자 지정 DDX 또는 DDV 루틴의 구현자는 DDX를 통해 데이터를 교환하거나 DDV를 통해 데이터의 유효성을 검사하는 모든 편집되지 않은 컨트롤을 호출 PrepareCtrl 해야 합니다.

고유한 DDX 및 DDV 루틴을 작성하는 방법에 대한 자세한 내용은 Technical Note 26을 참조하세요. DDX 및 DDV에 대한 개요는 대화 상자 데이터 교환 및 유효성 검사 및 대화 상자 항목을 참조하세요.

CDataExchange::P repareEditCtrl

프레임워크는 이 멤버 함수를 호출하여 DDX(대화 상자 데이터 교환) 및 유효성 검사(DDV)에 대해 지정된 편집 컨트롤을 준비합니다.

HWND PrepareEditCtrl(int nIDC);

매개 변수

nIDC
DDX 또는 DDV에 대해 준비할 편집 컨트롤의 ID입니다.

Return Value

DDX 또는 DDV에 대해 준비 중인 편집 컨트롤의 HWND입니다.

설명

편집하지 않는 모든 컨트롤에 PrepareCtrl을 대신 사용합니다.

준비는 두 가지로 구성됩니다. PrepareEditCtrl 먼저 컨트롤의 HWND를 클래스에 저장합니다CDataExchange. 프레임워크는 이 핸들을 사용하여 DDX 또는 DDV 오류가 발생할 경우 이전에 포커스가 집중된 컨트롤로 포커스를 복원합니다. 둘째, PrepareEditCtrl 데이터를 교환하거나 유효성을 검사하는 컨트롤이 편집 컨트롤임을 나타내도록 클래스의 플래그 CDataExchange 를 설정합니다.

사용자 지정 DDX 또는 DDV 루틴의 구현자는 DDX를 통해 데이터를 교환하거나 DDV를 통해 데이터의 유효성을 검사하는 모든 편집 컨트롤을 호출 PrepareEditCtrl 해야 합니다.

고유한 DDX 및 DDV 루틴을 작성하는 방법에 대한 자세한 내용은 Technical Note 26을 참조하세요. DDX 및 DDV에 대한 개요는 대화 상자 데이터 교환 및 유효성 검사 및 대화 상자 항목을 참조하세요.

CDataExchange::P repareOleCtrl

프레임워크는 이 멤버 함수를 호출하여 DDX(대화 상자 데이터 교환) 및 유효성 검사(DDV)에 대해 지정된 OLE 컨트롤을 준비합니다.

COleControlSite* PrepareOleCtrl(int nIDC);

매개 변수

nIDC
DDX 또는 DDV에 대해 준비할 OLE 컨트롤의 ID입니다.

Return Value

OLE 컨트롤 사이트에 대한 포인터입니다.

설명

편집 컨트롤에 대신 PrepareEditCtrl을 사용하거나 다른 모든 비 OLE 컨트롤에 대해 PrepareCtrl을 사용합니다.

사용자 지정 DDX 또는 DDV 루틴의 구현자는 DDX를 통해 데이터를 교환하거나 DDV를 통해 데이터의 유효성을 검사하는 모든 OLE 컨트롤을 호출 PrepareOleCtrl 해야 합니다.

고유한 DDX 및 DDV 루틴을 작성하는 방법에 대한 자세한 내용은 Technical Note 26을 참조하세요. DDX 및 DDV에 대한 개요는 대화 상자 데이터 교환 및 유효성 검사 및 대화 상자 항목을 참조하세요.

참고 항목

MFC 샘플 VIEWEX
계층 구조 차트
CWnd::D oDataExchange
CWnd::UpdateData