대화 상자 데이터 교환
DDX 메커니즘을 사용 하는 경우 초기 값 대화 상자 개체의 멤버 변수에서 일반적으로 설정 하면 OnInitDialog 처리기 또는 대화 상자 생성자입니다.대화 상자를 표시 하기 전에 프레임 워크의 DDX 메커니즘 멤버 변수 값 표시 대화 상자에서 컨트롤을 전송 하는 즉시 해당 대화 상자가 나타날 때에 대 한 응답으로 DoModal 또는 만들기.기본 구현은 OnInitDialog 에서 CDialog 호출의 UpdateData 클래스의 멤버 함수 CWnd 대화 상자의 컨트롤을에서 초기화 합니다.
[확인] 단추를 클릭할 때 동일한 메커니즘 값에서 컨트롤의 멤버 변수를 전송 (호출할 때마다 나는 UpdateData 멤버 함수에는 인수가 TRUE).대화 상자 데이터 유효성 검사 메커니즘 유효성 검사 규칙에 지정 된 데이터 항목의 유효성을 검사 합니다.
다음 그림 대화 상자 데이터 교환을 방법을 보여 줍니다.
대화 상자 데이터 교환
UpdateData지정한 대로 양방향으로 작동 하는 BOOL 매개 변수를 전달 합니다.Exchange 아웃을 수행할 수 UpdateData 설정 하는 CDataExchange 개체 및 호출 대화 상자 클래스를 재정의의 CDialog의 DoDataExchange 멤버 함수.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이 반환.즉, 데이터가 없는 대화 상자와 대화 상자 개체 간에 교환 됩니다.