[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 코드 부분
- 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);
}
{
// 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);
}
이렇게 짜보면 예제를 실행할 수 있습니다.
'소프트웨어(SW) > MS - C++ (GUI) MFC' 카테고리의 다른 글
[MFC] 윈도우 프로그래밍 기초 - Edit Control(에디트 컨트롤) - 택스트상자 (2) | 2015.03.22 |
---|---|
[MFC] 윈도우 프로그래밍 기초 - (라디오 버튼) + 그룹박스 (2) | 2015.03.22 |
[MFC] 윈도우 프로그래밍 기초 - 버튼 클릭 사용하기 (2) | 2015.03.21 |
[MFC] 윈도우 프로그래밍 기초 - Trace (디버그 창 출력) (2) | 2015.03.21 |
[MFC] 윈도우 프로그래밍 기초 - 리소스 문자열 제어 (2) | 2015.03.21 |