zoukankan      html  css  js  c++  java
  • 计算器图形界面

    第六次作业

    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();
    	}
    }
    
    
    

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

    界面如图:

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

  • 相关阅读:
    谈谈站桩
    mysql开发之---使用游标双层嵌套对总表进行拆分为帖子表和回复表
    【Xcode学C-3】if等流程控制、函数的介绍说明标记分组、#include以及LLVM
    hdu5303(2015多校2)--Delicious Apples(贪心+枚举)
    Hadoop最大值的算法中出现的错误(strToDouble)
    利用管道进行通信
    HDU 5308 规律+模拟
    深入浅出理解排序算法之-选择排序
    Jscript 随记
    SharedPreferences具体解释(一)——基础知识
  • 原文地址:https://www.cnblogs.com/wpqf7630/p/5546687.html
Copyright © 2011-2022 走看看