728x90
300x250

[MFC] 윈도우 프로그래밍 기초 - 체크 박스 + 버튼 응용 예제

 

오늘 만들어볼 예제는 체크 박스를 선택하면 내용이 출력되는 것을 만들도록 하겠습니다.

VB6 수준으로 정말 쉽습니다.

 

실습을 하기에 앞서 이론적인 지식을 잠시 넣도록 하겠습니다.

 


1. 구현에 관한 기본 지식

afxwin.h

-> void SetCheck(int nCheck)

-> int GetCheck( ) const

 

SetCheck( )는 말 그대로 체크박스의 값을 변경하는 일을 수행하며

GetCheck( )는 아래의 인자값으로서 체크박스의 현재 상태를 출력한다.

상태값은 아래와 같이 두 가지로 구분된다.

 

 인자 값

 내용

 BST_UNCHECKED

 체크박스 컨트롤이 체크 안된 상태를 의미

 BST_CHECKED

 체크박스 컨트롤이 체크된 상태를 의미 

 


2. 결과 - 완성 프로그램

 

 


3. 실습

 

 

 

위처럼 디자인을 합니다.

 

 컨트롤 ID

 변수 이름

 변수 형식

 범주(T)

 IDC_CHECK1

 m_CheckBox1

 CButton

 Control

 IDC_CHECK2 

 m_CheckBox2

 CButton 

 Control 

 IDC_CHECK3

 m_CheckBox3

CButton

 Control

 IDC_BUTTON

 

 

 

 

IDC_BUTTON은 이벤트 처리기로 OnBnClickedButton1()을 생성해줍니다.

(사용자프로젝트명)Dlg.h에 가면 아래와 같이 잘빠지게 생성된 것을 확인할 수 있습니다.

 

 

(사용자프로젝트명)Dlg.cpp 코드 부분

 

맨 위의 #ifdef _ #endif 아래에 이와 같이 코드를 짜봅니다.

- 0번째 줄부터 보면 찾기 쉽습니다.

 

 

 

BOOL CMFCControlDlg::OnInitDialog()  - 약 74줄 근방에 위치함

{

         (생략)

         
          // TODO: 여기에 추가 초기화 작업을 추가합니다. - 약 103줄 근방에 위치함.
           SetDlgItemText(IDC_BUTTON1, _T("확인"));
           SetDlgItemText(IDC_CHECK1, pszName[0]);
           SetDlgItemText(IDC_CHECK2, pszName[1]);
           SetDlgItemText(IDC_CHECK3, pszName[2]);

 

           m_CheckBox1.SetCheck(BST_CHECKED);
           m_CheckBox2.SetCheck(BST_UNCHECKED);
           m_CheckBox3.SetCheck(BST_UNCHECKED);


}

 

 

void CMFCControlDlg::OnBnClickedButton1() // 약 166줄 위치
{
        // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.

         CString szMsg;

        if (m_CheckBox1.GetCheck() == BST_CHECKED)
        {
               GetDlgItemText(IDC_CHECK1, szMsg);
               szMsg.Append(_T("님"));
        }

        if (m_CheckBox2.GetCheck() == BST_CHECKED)
        {
               GetDlgItemText(IDC_CHECK2, szMsg);
               szMsg.Append(_T("님"));
         }

         if (m_CheckBox3.GetCheck() == BST_CHECKED)
         {
               GetDlgItemText(IDC_CHECK3, szMsg);
               szMsg.Append(_T("님"));
         }

         szMsg.Append(_T("\n안녕하세요."));

         AfxMessageBox(szMsg);

}

 

이렇게 짜보면 예제를 실행할 수 있습니다.

 

반응형

+ Recent posts