본문 바로가기

IT/C++, MFC

DoDataExchange

컨트롤에 입력된 값이 Value형 멤버 변수로 전송되기에 적합한 데이터 형이고, 유효한 입력 범위 안에 있으면 DDX_로 시작되는 함수들이 호출되어 실제로 데이터가 전송되고, 그렇지 않으면 에러 메세지가 출력되면서 데이터 전송은 취소됩니다. 
DDV: Dialog Data Validation(대화상자 데이터 유효성 확인)

DDX: Dialog Data eXchange(대화상자 데이터 교환) 

 

UpdateData(FALSE)가 호출되면 DoDataExchange 함수가 호출되면서 DDX_로 시작하는 함수들이 호출되어 Value형 멤버 변수에 설정된 데이터가 컨트롤로 전송되어 화면에 출력됩니다. UpdateData(FALSE)가 호출되었을 경우에는 DDV_로 시작하는 함수는 호출되지 않습니다. Value형 멤버 변수에 설정된 값을 컨트롤로 전송할 때는 데이터 유효성 여부를 확인 할 필요가 없기 때문입니다. 

 

DoDataExchange는 대화상자의 Value형 멤버 변수와 컨트롤에 입력된 값을 연결시키기 위해 사용됩니다. DoDataExchange 함수 안에 DDX_Text 등의 함수를 이용하여 대화상자의 멤버 변수와 컨트롤을 연결 시켜놓으면, UpdateData 함수를 호출함으로써 컨트롤에 입력된 내용을 멤버 변수에 저장하거나 설정된 값을 컨트롤로 전송하는 일을 쉽게 할 수 있었습니다. 

 

참고자료

Visual C++ 6 완벽가이드 2nd Edition, 김용성, 영진닷컴