(三)实验日志12.3
物联网一班-李林青-182210713120
源代码在Github:https://github.com/llq-007/-MFC-
目录
-
目标
-
功能实现
-
作品展示
-
总结
一、目标
(1) 将第一天写的计算器功能实现代码运用到MFC上;
(2)能够在MFC上实现计算器的相关功能。
二、功能实现
(1)按下按键能在文本框中输出
代码实现 例:按下一键输出一
其中要新建一个文本框变量m_Edit1和全局CString变量g_str。
void CCalculatorDlg::OnBnClickedButton14()//输出1
{
g_str += "1";
m_Edit1.SetWindowText(g_str);
// TODO: 在此添加控件通知处理程序代码
}
(2)按下“=”键的结果输出
void CCalculatorDlg::OnBnClickedButton21()//按下=的结果输出
{
CString cs;
GetDlgItemText(IDC_EDIT1, cs);
g_str = "";
m_Edit1.SetWindowText(g_str);
m_Edit2.SetWindowText(cs);
std::string sz2 = CT2A(cs.GetBuffer());
double res = stackC(sz2);
if (res == -1.123)
{
CString a ;
a = "格式错误!!!";
m_Edit1.SetWindowText(a);
}
else
{
CString str;
str.Format(TEXT("%0.1f"), res,res);
g_str = str;
m_Edit1.SetWindowText(g_str);
}
}
(3)Delete删除键的设置
首先判断文本框中是否有字符,当有字符时令文本框中字符的最右边减一位。
void CCalculatorDlg::OnBnClickedButton4()//Delete键
{
int nLength = g_str.GetLength();
if (nLength > 0)
g_str = g_str.Left(nLength - 1);
else g_str = "0";
m_Edit1.SetWindowText(g_str);
}
(4)Clear清屏键的设置
直接令全局变量g_str为空,在将其输出到文本框中。
void CCalculatorDlg::OnBnClickedButton1()//Clear清屏键
{
g_str = "";
m_Edit1.SetWindowText(g_str);
}
(4)菜单的设置
在文件夹中右键点击添加资源。
选择Menu添加菜单。
然后对菜单进行编辑即可。
(5)返回上一步功能设置
在菜单的返回上一步上点击右键,选择添加事件处理程序。
具体代码如下:
void CCalculatorDlg::On32771()//返回上一步
{
CString cs;
GetDlgItemText(IDC_EDIT2, cs);
if(cs=="")
MessageBox(_T("没有上一步"));
g_str = "";
m_Edit1.SetWindowText(cs);
}