다음을 통해 공유


대화 상자 데이터 교환

DDX 메커니즘을 사용 하는 경우 초기 값 대화 상자 개체의 멤버 변수에서 일반적으로 설정 하면 OnInitDialog 처리기 또는 대화 상자 생성자입니다.대화 상자를 표시 하기 전에 프레임 워크의 DDX 메커니즘 멤버 변수 값 표시 대화 상자에서 컨트롤을 전송 하는 즉시 해당 대화 상자가 나타날 때에 대 한 응답으로 DoModal 또는 만들기.기본 구현은 OnInitDialog 에서 CDialog 호출의 UpdateData 클래스의 멤버 함수 CWnd 대화 상자의 컨트롤을에서 초기화 합니다.

[확인] 단추를 클릭할 때 동일한 메커니즘 값에서 컨트롤의 멤버 변수를 전송 (호출할 때마다 나는 UpdateData 멤버 함수에는 인수가 TRUE).대화 상자 데이터 유효성 검사 메커니즘 유효성 검사 규칙에 지정 된 데이터 항목의 유효성을 검사 합니다.

다음 그림 대화 상자 데이터 교환을 방법을 보여 줍니다.

대화 상자 데이터 교환

대화 상자 데이터 교환

UpdateData지정한 대로 양방향으로 작동 하는 BOOL 매개 변수를 전달 합니다.Exchange 아웃을 수행할 수 UpdateData 설정 하는 CDataExchange 개체 및 호출 대화 상자 클래스를 재정의의 CDialogDoDataExchange 멤버 함수.DoDataExchange형식 인수는 CDataExchange.CDataExchange 개체를 전달 하려면 UpdateData 컨텍스트 교환, 이러한 정보는 exchange의 방향으로 정의 나타냅니다.

(또는 코드 마법사)를 재정의할 때 DoDataExchange, 호출 하는 데이터 멤버 (컨트롤) 당 하나의 DDX 함수를 지정 합니다.각 DDX 함수를 제공 하는 컨텍스트에 따라 양방향 데이터를에서 교환 하는 방법 알고는 CDataExchange 인수를 전달 하 여 DoDataExchange 에서 UpdateData.

MFC에 대 한 다양 한 유형의 exchange 하도록 많은 DDX 함수를 제공합니다.다음 예제는 DoDataExchange 에 있는 두 개의 DDX 함수 및 DDV 함수 라고 무시:

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);
}

DDX_ 및 DDV_ 데이터 구조입니다.각각 표시 된 샘플 DDX 및 DDV 함수는 편집 상자 컨트롤 및 확인란 컨트롤입니다.

사용자는 모달 대화 상자를 취소 하면는 OnCancel 멤버 함수는 대화 상자를 종료 하 고 DoModal 값을 반환 합니다. idcancel이 반환.즉, 데이터가 없는 대화 상자와 대화 상자 개체 간에 교환 됩니다.

참고 항목

개념

대화 상자 데이터 교환 및 유효성 검사

라이프 사이클의 대화 상자

대화 상자 데이터 유효성 검사