计算器图形界面

第六次作业

Github enter

参考资料:
1、MFC打开文件对话框
2、VS2010/MFC编程入门教程
3、关于计算器响应键盘消息及虚拟键

过程:刚开始不知道要怎么做就就去看了vsMFC编程入门,这是同学推荐我去看的,然后用vs MFC画出计算器的界面。画好界面后就是写按钮的响应事件,响应事件要一个一个的写,下面我们看其中的一个 ,其他的以此类推:


void CcalaulatorDlg::OnBnClickedButton14()
{
	// TODO: 在此添加控件通知处理程序代码
	CString str;
	GetDlgItem(IDC_EDIT1)->GetWindowText(str);
	if (str == "ERROR")    //if......else .... 用来是否已经计算过了 如果有 当你输入的时候,清空原来编辑框上的消息 然后再加上字符
	{
		str = "";   
	}
	else {
		for (int i = 0; i < str.GetLength(); i++)
		{
			if (str[i] == '=')
			{
				str = "";
				break;
			}
		}
	}
	str += '8';
	GetDlgItem(IDC_EDIT1)->SetWindowText(str);
}

大概就是那样了,当我们出发“=”时就直接跳入计算,计算前我们得把原来的代码以类的形式添加到这个工程进来,然后调用它


void CcalaulatorDlg::OnBnClickedButton20()
{
	//等号的时候
	// TODO: 在此添加控件通知处理程序代码
	CString str,a;
	GetDlgItem(IDC_EDIT1)->GetWindowText(str);
	if (str == "ERROR")
	{
		str = "";
	}
	else {
		for (int i = 0; i < str.GetLength(); i++)
		{
			if (str[i] == '=')
			{
				str = "";
				break;
			}
		}
	}
	if (str != "")
	{
		a = str;
		a += '=';
		str = "";	
		CT2CA pszConvertedAnsiString(a);  // 将 TCHAR 转换为 LPCSTR  
		string input(pszConvertedAnsiString); // 从 LPCSTR 构造 string
		queue<string>key;
		Scan KFC;
		Calculator calcu;
		key = KFC.ToStringQueue(input);	
		if (KFC.judge())
		{		
			double s;
			string tmp;
			stringstream ss;
			s = calcu.Calculation(key);
			ss << s;
			ss >> tmp;
			a += tmp.c_str();
		}
		else {
			a = "ERROR";
		}
	   GetDlgItem(IDC_EDIT1)->SetWindowText(a);
	}
}


接下来就是批量处理了,我们输入途径要有两种,一种是键盘输入,一种是选择路径;

第一次更新:
选择路径代码如下:


void CcalaulatorDlg::OnBnClickedButton22()
{
	// TODO: 在此添加控件通知处理程序代码
	CString gReadFilePathName;
	CFileDialog fileDlg(true, _T("txt"), _T("*.txt"), OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, _T("txt Files (*.txt)|*.tx|All File (*.*)|*.*||"), NULL);
	if (fileDlg.DoModal() == IDOK)    //弹出对话框  
	{
		gReadFilePathName = fileDlg.GetPathName();//得到完整的文件名和目录名拓展名  
		GetDlgItem(IDC_EDIT2)->SetWindowText(gReadFilePathName);//将路径显示  
		CString filename = fileDlg.GetFileName();
	}
}


第二次更新
键盘输入弄好啦;

界面如图:

最后:界面是有点丑 ,但是后面改一改应该可以好看点 哈哈哈!!!!

posted @ 2016-05-31 17:31  Sxiaopeng  Views(426)  Comments(5Edit  收藏  举报