안녕하세요 오늘은 콤보 박스와 체크 박스에 대해 알아보겠습니다.
1. 콤보 박스
도구 상자에서 Combo Box를 만들어 줍니다.

Combo Box 속성에서 ID는 IDC_COMBO_TEST로 해주시고 Type은 Drop List로 해줍니다.

Combo Box를 우클릭하셔서 변수 추가를 선택합니다.

변수명을 m_cbTest로 입력한 뒤 마침을 선택합니다.

그러면 헤더 파일에 아래와 같이 입력이 됩니다.
CComboBox m_cbTest;
OnInitDialog에 아래와 같이 초기화를 해줍니다.
m_cbTest.InsertString(0, _T("1번째")); m_cbTest.InsertString(1, _T("2번째")); m_cbTest.InsertString(2, _T("3번째")); m_cbTest.SetCurSel(0);
이 상태로 실행을 시키면 아래와 같이 표시가 됩니다.

하지만 이 상태는 표시만 할 뿐, 우리는 선택을 하고나서 선택한 텍스트를 처리할 수 있어야겠죠?
아래와 같이 Combo Box를 우클릭한 뒤 이벤트 처리기 추가를 선택합니다.

CBN_SELCHANGE를 선택한 뒤 추가 및 편집 버튼을 선택합니다.

그러면 아래와 같이 이벤트 처리 함수가 생기는데 내부이 아래와 같이 입력합니다.
void CMFCApplication1Dlg::OnCbnSelchangeComboTest() { int iSel = m_cbTest.GetCurSel(); if (CB_ERR != iSel) { CString sSel; m_cbTest.GetLBTest(iSel, sSel); } }
읽어온 텍스트 값을 표시하기 위해 대화 상자에 Static Control을 만들어 줍니다.

적당히 늘려주시고 Static Control ID를 IDC_STATIC_TEST로 변경합니다.

Static Control을 우클릭하신 뒤 변수 추가를 선택한 뒤 변수 이름에 m_stTest를 입력하신 후 마침 버튼을 클릭합니다.
이제 다시 Combo Box 이벤트 처리 함수로 와서 아래와 같이 입력합니다.
void CMFCApplication1Dlg::OnCbnSelchangeComboTest() { int iSel = m_cbTest.GetCurSel(); if (CB_ERR != iSel) { CString sSel; m_cbTest.GetLBTest(iSel, sSel); m_stTest.SetWindowText(sSel); } }
실행 시켜서 확인해 봅니다.

2. 체크 박스
대화 상자에 Check Box를 넣어 줍니다.

위에서 했던 것처럼 Check Box 선택 후 ID를 IDC_CHECK_TEST로 바꿔줍니다. 그리고 Check Box 우클릭하신 뒤 변수 추가를 선택 하고 변수 이름에 m_chkTest를 입력한 뒤 마침 버튼을 선택합니다. 그러면 헤더파일에 아래와 같이 추가되어있을겁니다.
CButton m_chkTest;
대화 상자에서 Check Box 우클릭하신 뒤 이벤트 처리기 추가를 선택합니다. 그리고 BN_CLICKED선택 후 추가 및 편집을 선택합니다.
그러면 이벤트 처리 함수가 생기는데 아래와 같이 함수 내부에 입력 합니다.
void CMFCApplication1Dlg::OnBnClickedCheckTest() { BOOL bCheck = m_chkTest.GetCheck(); }
자 이제 거의다 왔네요.
읽어 온 Check Box 값을 표시해야겠죠? 위에서 했던 것처럼 Static Control 하나 추가해주시고요, ID를 IDC_STATIC_TEST2로 합니다.
방금 추가한 Static Control 우클릭을 하신 뒤 변수 추가를 눌러준 뒤 변수 이름에 m_stTest2입력 후 마침 버튼을 선택합니다.
그리고 다시 Check Box 이벤트 처리 함수로 돌아와서 아래 함수를 추가 합니다.
void CMFCApplication1Dlg::OnBnClickedCheckTest() { BOOL bCheck = m_chkTest.GetCheck(); if (bCheck) m_stTest2.SetWindowText(_T("체크")); else m_stTest2.SetWindowText(_T("체크 해제")); }
이제 프로그램 실행 뒤 Check Box를 눌러 봅시다.

오늘은 Combo Box와 Check Box에 대해 알아봤습니다.