[MFC] UpdateData(FALSE) or TRUE

빵욱·2024년 4월 3일

UpdateData

MFC에서 BOOL UpdateData(BOOL bSaveAndValidate = TRUE); 함수를 자주 사용한다
UI 데이터 관련해서 자주 사용하는데 내용을 정리해 둔다.

UpdateData(TRUE)

함수 파라미터를 TRUE로 했을 때 동작은 다음과 같다.

대화상자의 컨트롤로부터 멤버 변수로 데이터를 전송한다.
즉, 사용자가 UI에서 입력하거나 변경한 값이 멤버 변수로 업데이트된다.
일반적으로, 사용자가 입력을 완료하고 'OK' 버튼 같은 것을 클릭했을 때 사용된다.

데이터 검증(DDV)도 이 단계에서 수행된다고 한다.
만약 데이터가 유효하지 않으면, 사용자에게 경고 메시지가 표시되고, 데이터 전송은 중단된다고 함.

UpdateData(FALSE)

이 호출은 멤버 변수의 값을 대화상자의 컨트롤로 전송한다. 즉, 멤버 변수의 값이 UI 컨트롤에 반영된다. 멤버 변수의 CString 데이터가 STATIC 컨틀롤 하나와 연결되어 있다면 그 STATIC 컨트롤의 데이터가 업데이트 된다.
대화상자가 처음 표시될 때 초기 값을 설정하거나, 사용자가 어떤 동작을 통해 변경된 내부 데이터를 UI에 다시 표시해야 할 때 사용된다.

이 방향으로의 데이터 전송은 데이터 검증 과정을 거치지 않는다고한다.

내부적으로 데이터를 업데이트해서 화면에 뿌려줄 때 UpdateData(FALSE) 마지막에 호출해주면 된다.

profile
rove drink eat

0개의 댓글