MFC에서 UpdateData()를 사용해서 Control의 값을 변수로 적용하거나 반대로 처리한다.
void etModalProgressThread::UpdateData(BOOL b)
{
etModalProgressDlg * pDlg = (etModalProgressDlg *)m_pMainWnd;
pDlg->m_title = m_title;
pDlg->m_Text = m_Text;
pDlg->SendMessage(UM_MODAL_UPDATEDATA, (WPARAM)b, 0L);
}
https://learn.microsoft.com/en-us/cpp/mfc/dialog-data-exchange?view=msvc-170
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);
}
위와 같이 Control 변수와 그 Control의 값의 변수 두개로 선언해서 사용을 할 수가 있다.
- UpdateData() : 기본 값이 TRUE이다. 컨트롤의 값을 변수로 적용
- UpdateData(FALSE): 변수의 값을 컨트롤에 적용.
DDX_Text(pDX, IDC_ED_TEST, m_strEdTest);
DDX_Control(pDX, IDC_ED_TEST, m_crtlEdTest);
UpdateData() 함수를 호출하면 m_ctrlEdTest에 표시되는 Text 값을 m_strEdTest에 넣어준다.
UpdateData(FALSE)를 호출하면 m_strEdTest 값을 m_ctrlEdTest의 Text에 넣어 표시한다.
'MFC' 카테고리의 다른 글
MFC 단축키 Accelerator 리소스 추가 (0) | 2024.01.16 |
---|---|
최근 열어본 파일 MRU Menu Items 처리 커스텀 방법 (1) | 2024.01.15 |
ON_CONTROL_RANGE를 이용해서 같은 이벤트 처리를 한 함수로 해결 방법 (0) | 2023.07.05 |
HEX CString to BYTE array (0) | 2023.05.08 |
MFC jsoncpp 설치 (0) | 2022.11.28 |