[MFC] 계산기 프로그램 작성 1
- 최초 작성일: 2022년 2월 25일 (금)
목차
[TOC]
목적
사칙 연산과 CString 함수의 형 변환을 이용하여 계산기 프로그램을 작성한다.
프로젝트 생성
- 프로젝트명: ‘Calc’
- 응용 프로그램 종류: ‘대화 상자 기반’
다이얼로그 설정
멤버 변수 설정
아래와 같이, [클래스 뷰]-[Calc]-[CCalcDlg]에서 [추가]-[변수 추가]를 클릭하고 멤버 변수를 추가한다.
그리고 클래스 마법사를 실행시키고, [멤버 변수] 탭에서 아래와 같이 멤버 변수들을 추가한다.
또한, 클래스 마법사에서 다음과 같이 버튼 클릭시에 대한 멤버 함수를 추가하고, 코드를 작성하자.
코드 작성
void CCalcDlg::OnClickedButtonAdd()
{
// TODO: Add your control notification handler code here
m_nOption = 1;
}
void CCalcDlg::OnClickedButtonSub()
{
// TODO: Add your control notification handler code here
m_nOption = 2;
}
void CCalcDlg::OnClickedButtonMul()
{
// TODO: Add your control notification handler code here
m_nOption = 3;
}
void CCalcDlg::OnClickedButtonDiv()
{
// TODO: Add your control notification handler code here
m_nOption = 4;
}
void CCalcDlg::OnClickedButtonEqu()
{
// TODO: Add your control notification handler code here
char temp[10];
double tmpResult;
UpdateData(TRUE);
switch (m_nOption)
{
case 1:
tmpResult = atof(m_nNum1) + atof(m_nNum2); // [프로젝트 속성]-[구성 속성]-[고급]-[문자 집합]-[멀티바이트 문자 집합 사용] 안하면 에러뜸.
break;
case 2:
tmpResult = atof(m_nNum1) - atof(m_nNum2);
break;
case 3:
tmpResult = atof(m_nNum1) * atof(m_nNum2);
break;
case 4:
tmpResult = atof(m_nNum1) / atof(m_nNum2);
break;
default:
tmpResult = 0.00;
break;
}
sprintf_s(temp, "%2.f", tmpResult);
m_nResult = temp;
UpdateData(FALSE);
}
void CCalcDlg::OnClickedButtonClear()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
m_nNum1 = L"";
m_nNum2 = _T("");
m_nResult = _T("");
UpdateData(FALSE);
}
void CCalcDlg::OnClickedButtonExit()
{
// TODO: Add your control notification handler code here
PostQuitMessage(0);
}