mfc计算器
时间: 2023-08-13 07:02:24 浏览: 102
MFC计算器可以通过以下步骤实现:
1. 在Visual Studio中创建一个MFC应用程序项目。
2. 在资源视图中添加对话框资源。
3. 在对话框中添加按钮和编辑框控件。
4. 为每个按钮添加单击事件处理程序,并在事件处理程序中实现计算器逻辑。
5. 使用MFC框架提供的CString类来处理数字和结果的显示。
这里提供一个简单的示例代码:
在对话框类的头文件中添加以下成员变量:
```
CString m_strInput; // 输入的数字字符串
CString m_strResult; // 计算结果字符串
double m_dNum1; // 第一个操作数
double m_dNum2; // 第二个操作数
char m_chOperator; // 操作符
BOOL m_bInputNum2; // 是否正在输入第二个数字
```
在OnInitDialog()函数中初始化变量:
```
m_strInput = _T("");
m_strResult = _T("0");
m_dNum1 = 0;
m_dNum2 = 0;
m_chOperator = ' ';
m_bInputNum2 = FALSE;
UpdateData(FALSE);
```
在数字按钮的单击事件处理程序中,将数字添加到m_strInput中:
```
void CMyDlg::OnBnClickedBtnNum(UINT nID)
{
if (m_bInputNum2)
{
m_strInput.Empty();
m_bInputNum2 = FALSE;
}
CString strNum;
strNum.Format(_T("%d"), nID - IDC_BTN_NUM0);
m_strInput += strNum;
UpdateData(FALSE);
}
```
在操作符按钮的单击事件处理程序中,将输入的数字转换为实数并保存到m_dNum1中,并保存操作符:
```
void CMyDlg::OnBnClickedBtnOp(UINT nID)
{
if (m_strInput.IsEmpty())
return;
m_dNum1 = _ttof(m_strInput);
m_chOperator = nID - IDC_BTN_ADD + '+';
m_strInput.Empty();
m_bInputNum2 = TRUE;
UpdateData(FALSE);
}
```
在等号按钮的单击事件处理程序中,将输入的数字转换为实数并保存到m_dNum2中,并根据操作符计算结果:
```
void CMyDlg::OnBnClickedBtnEqual()
{
if (m_strInput.IsEmpty())
return;
m_dNum2 = _ttof(m_strInput);
switch (m_chOperator)
{
case '+':
m_dNum1 += m_dNum2;
break;
case '-':
m_dNum1 -= m_dNum2;
break;
case '*':
m_dNum1 *= m_dNum2;
break;
case '/':
m_dNum1 /= m_dNum2;
break;
}
m_strResult.Format(_T("%g"), m_dNum1);
m_strInput.Empty();
m_bInputNum2 = FALSE;
UpdateData(FALSE);
}
```
其他操作符按钮的单击事件处理程序类似,只需要修改操作符即可。
阅读全文