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

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

    界面如图:

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

  • 相关阅读:
    ATA/SATA/SCSI/SAS/FC总线简介
    RAID卡
    解读Gartner《2015年度新兴技术成熟度曲线报告》
    linux 下 取进程占用内存(MEM)最高的前10个进程
    网站用域名能访问,用域名IP不能访问的原因分析
    iis7下iis安全狗不能用怎么办(安装iis6兼容性)
    4M宽带一般最大的下载速度是多少?
    U盘安装操作系统
    windows7实现打印机共享的方法
    windows7系统下如何安装windows xp系统(无法识别硬盘,删除隐藏分区)
  • 原文地址:https://www.cnblogs.com/wpqf7630/p/5546687.html
Copyright © 2011-2022 走看看