⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 计算器dlg.cpp

📁 这个也是一个计算器用VISUAL C++设计
💻 CPP
📖 第 1 页 / 共 3 页
字号:
{
	// TODO: Add your control notification handler code here
	UpdateData(1);
	int len=m_edit_io.GetLength()-1;
	if(len<0)return;
	char cher=m_edit_io[len];
	if(len==0 && cher=='-')return;
	if(cher=='(')return;
	if(len>=1 && m_edit_io[len-1]=='('&&cher=='-')return;
	if(cher=='+' || cher=='-')
	{
		m_edit_io.Delete(len,1);m_edit_io+="*";UpdateData(0);return;
	}
	if(cher=='*'|| cher=='/')
	{
		m_edit_io.Delete(len,1);m_edit_io+="*";UpdateData(0);return;
	}	
	//UpdateData(1);
	else m_edit_io+="*";
	UpdateData(0);
}

void CMyDlg::OnBTNchu() 
{
	// TODO: Add your control notification handler code here
	UpdateData(1);
	int len=m_edit_io.GetLength()-1;
	if(len<0)return;
	char cher=m_edit_io[len];
	if(len==0 && cher=='-')return;
	if(cher=='(')return;
	if(len>=1 &&m_edit_io[len-1]=='('&&cher=='-')return;
	if(cher=='+' || cher=='-')
	{
		m_edit_io.Delete(len,1);m_edit_io+="/";UpdateData(0);return;
	}
	if(cher=='*'|| cher=='/')
	{
		m_edit_io.Delete(len,1);m_edit_io+="/";UpdateData(0);return;
	}	
	//UpdateData(1);
	else m_edit_io+="/";
	UpdateData(0);
}

void CMyDlg::OnBTNspace() 
{
	// TODO: Add your control notification handler code here
	UpdateData(1);
	m_edit_io+=" ";
	UpdateData(0);
}

void CMyDlg::OnBTNexit() 
{
	// TODO: Add your control notification handler code here
	UpdateData(1);
	exit(0);
	UpdateData(0);
}

void CMyDlg::OnRADIOHex() //十六进制
{
	// TODO: Add your control notification handler code here
	CWnd *pWnd=this->GetDlgItem(IDC_BTN_A);
    pWnd->EnableWindow(true);
	pWnd=this->GetDlgItem(IDC_BTN_B);
    pWnd->EnableWindow(true);
	pWnd=this->GetDlgItem(IDC_BTN_C);
    pWnd->EnableWindow(true);
	pWnd=this->GetDlgItem(IDC_BTN_D);
    pWnd->EnableWindow(true);
	pWnd=this->GetDlgItem(IDC_BTN_Ebig);
    pWnd->EnableWindow(true);
	pWnd=this->GetDlgItem(IDC_BTN_F);
    pWnd->EnableWindow(true);
    pWnd=this->GetDlgItem(IDC_BTN_sin);
    pWnd->EnableWindow(0);
	pWnd=this->GetDlgItem(IDC_BTN_cos);
    pWnd->EnableWindow(0);
	pWnd=this->GetDlgItem(IDC_BTN_tan);
    pWnd->EnableWindow(0);
	pWnd=this->GetDlgItem(IDC_BTN_cot);
    pWnd->EnableWindow(0);
	pWnd=this->GetDlgItem(IDC_BTN_8);
    pWnd->EnableWindow(1);
	pWnd=this->GetDlgItem(IDC_BTN_9);
    pWnd->EnableWindow(1);
	pWnd=this->GetDlgItem(IDC_BTN_7);
    pWnd->EnableWindow(1);
	pWnd=this->GetDlgItem(IDC_BTN_6);
    pWnd->EnableWindow(1);
	pWnd=this->GetDlgItem(IDC_BTN_5);
    pWnd->EnableWindow(1);
	pWnd=this->GetDlgItem(IDC_BTN_4);
    pWnd->EnableWindow(1);
	pWnd=this->GetDlgItem(IDC_BTN_3);
    pWnd->EnableWindow(1);
	pWnd=this->GetDlgItem(IDC_BTN_2);
    pWnd->EnableWindow(1);
	UpdateData(1);
	if(b==10)
	{
		int i=0;
	    char str[100];
	    int len=m_edit_io.GetLength()-1;
		if(len<0) {b=16;return;}
    	for(;i<=len;i++)
		{
		    str[i]=m_edit_io[i];
		}
	
	    double temp=atof(str);
        b=16;
		m_edit_io=tentoothers(temp,b);
    	UpdateData(0);
        
   }
	if(b==8)
	{
		double m=otherstoten(m_edit_io,b);
        b=16;
		m_edit_io=tentoothers(m,b);
    	UpdateData(0);
        
   }
		if(b==2)
	{
		double m=otherstoten(m_edit_io,b);
        b=16;
		m_edit_io=tentoothers(m,b);
    	UpdateData(0);
        
   }
   b=16;
}

void CMyDlg::OnChangeEditIo() 
{
	// TODO: If this is a RICHEDIT control, the control will not
	// send this notification unless you override the CDialog::OnInitDialog()
	// function and call CRichEditCtrl().SetEventMask()
	// with the ENM_CHANGE flag ORed into the mask.
	
	// TODO: Add your control notification handler code here
	UpdateData(1);
	int len=m_edit_io.GetLength()-1;
	if(len<0)return;
	char cher=m_edit_io[len];
	if(cher>'F' && cher<='Z')
	{
		m_edit_io.Delete(len,1);UpdateData(0);return;
	}
	if(cher>'f' && cher<='z')
	{
		m_edit_io.Delete(len,1);UpdateData(0);return;
	}	
	if(IsDlgButtonChecked(IDC_RADIO_Dec))
	{
		if(cher>='a' && cher<='z')
		{
			m_edit_io.Delete(len,1);UpdateData(0);return;
		}
		if(cher>='A' && cher<='Z')
		{
			m_edit_io.Delete(len,1);UpdateData(0);return;
		}
	}
	else if(IsDlgButtonChecked(IDC_RADIO_Oct))
	{
		if(cher>='a' && cher<='z')
		{
			m_edit_io.Delete(len,1);UpdateData(0);return;
		}
		if(cher>='A' && cher<='Z')
		{
			m_edit_io.Delete(len,1);UpdateData(0);return;
		}
		if(cher=='8' || cher=='9')
		{
			m_edit_io.Delete(len,1);UpdateData(0);return;
		}
	}
	else if(IsDlgButtonChecked(IDC_RADIO_Bin))
	{
		if(cher>='a' && cher<='z')
		{
			m_edit_io.Delete(len,1);UpdateData(0);return;
		}
		if(cher>='A' && cher<='Z')
		{
			m_edit_io.Delete(len,1);UpdateData(0);return;
		}
		if(cher>='2' && cher<='9')
		{
			m_edit_io.Delete(len,1);UpdateData(0);return;
		}
	}

}

void CMyDlg::OnBTNMyword() 
{

}

void CMyDlg::OnBTNleftbraket() 
{
	// TODO: Add your control notification handler code here
	UpdateData(1);
	int len=m_edit_io.GetLength()-1;
	if(len<0)
	{ 
		m_edit_io+="(";	UpdateData(0);return;
	}
	char cher=m_edit_io[len];
	if(cher=='+' || cher=='-'||cher=='(')
	{
	    m_edit_io+="(";	UpdateData(0);return;
	}
	if(cher=='*' || cher=='/')
	{
	    m_edit_io+="(";	UpdateData(0);return;
	}
	//UpdateData(0);
}

void CMyDlg::OnBTNrightbraket() 
{
	// TODO: Add your control notification handler code here
	UpdateData(1);
	int len=m_edit_io.GetLength()-1;
	if(len<0)return;
	char cher=m_edit_io[len];
	if((cher>='0'&&cher<='9') || (cher>='A' && cher<='F') || cher==')')
		m_edit_io+=")";	
	UpdateData(0);
}

void CMyDlg::OnBTNpi() 
{
	// TODO: Add your control notification handler code here
	UpdateData(1);
	if(IsDlgButtonChecked(IDC_RADIO_Dec))
	{
		int len=m_edit_io.GetLength()-1;
	    if(len<0)
		{ 
		     m_edit_io+="3.141592653589793";	UpdateData(0);return;
		}
	    char cher=m_edit_io[len];
	    if(cher=='(')
		{
             m_edit_io+="3.141592653589793";	UpdateData(0);return;
		}
	    if(cher=='+' || cher=='-')
		{
	         m_edit_io+="3.141592653589793";	UpdateData(0);return;
		}
	    if(cher=='*' || cher=='/')
		{
	         m_edit_io+="3.141592653589793";	UpdateData(0);return;
		}
	}
	else AfxMessageBox("语法不合!pi是十进制数据!"); 
	//UpdateData(0);
}

void CMyDlg::OnBTNe() 
{
	// TODO: Add your control notification handler code here
	UpdateData(1);
	if(IsDlgButtonChecked(IDC_RADIO_Dec))
	{
	    int len=m_edit_io.GetLength()-1;
	    if(len<0)
		{ 
		     m_edit_io+="2.718281828459045";	UpdateData(0);return;
		}
	    char cher=m_edit_io[len];
	    if(cher=='(')
		{
             m_edit_io+="2.718281828459045";	UpdateData(0);return;
		}
	    if(cher=='+' || cher=='-')
		{
	         m_edit_io+="2.718281828459045";	UpdateData(0);return;
		}
	    if(cher=='*' || cher=='/')
		{
	         m_edit_io+="2.718281828459045";	UpdateData(0);return;
		}
	}
	else AfxMessageBox("语法不合!e是十进制数据!"); 
	//m_edit_io+="2.718281828459045";
	//UpdateData(0);
}

void CMyDlg::OnBTNsin() 
{
	// TODO: Add your control notification handler code here
	UpdateData(1);
    int len=m_edit_io.GetLength()-1;
	if(len<0)return;
	int i;
	char str[100];
	double m;
	for(i=0;i<=len;i++)
	{
        str[i]=m_edit_io[i];
	}
	double k=atof(str);
	if(deg==1)
	{
        m=k/57.2957795130823208;
	}
	if(rad==1)
	{
		m=k;
	}
	double temp=sin(m);
    m_edit_io.Format("%lf",temp);
	UpdateData(0);
}

void CMyDlg::OnBTNcos() 
{
	// TODO: Add your control notification handler code here
	UpdateData(1);
    int len=m_edit_io.GetLength()-1;
	if(len<0)return;
	int i;
	char str[100];
	double m;
	for(i=0;i<=len;i++)
	{
        str[i]=m_edit_io[i];
	}
	double k=atof(str);
	if(deg==1)
	{
        m=k/57.2957795130823208;
	}
	if(rad==1)
	{
		m=k;
	}
	double temp=cos(m);
    m_edit_io.Format("%lf",temp);
	UpdateData(0);
}
void CMyDlg::OnBTNtan() 
{
	// TODO: Add your control notification handler code here
    UpdateData(1);
    int len=m_edit_io.GetLength()-1;
	if(len<0)return;
	int i;
	char str[100];
	double m;
	for(i=0;i<=len;i++)
	{
        str[i]=m_edit_io[i];
	}
	double k=atof(str);
	if(deg==1)
	{
		while(k>360)
		{
		    k=k-360;
		}
		if(k==90||k==270)
		{
            AfxMessageBox ("语法不合!");UpdateData(0);return;
		}
        m=k/57.2957795130823208;
	}
	if(rad==1)
	{
		while(k>6.283185)
		{
		    k=k-6.283185;
		}
		if(k==1.570796||k==4.712389)
		{
            AfxMessageBox ("语法不合!");UpdateData(0);return;
		}
		m=k;
	}
	double temp=tan(m);
    m_edit_io.Format("%lf",temp);
	UpdateData(0);
}

void CMyDlg::OnBTNcot() 
{
	// TODO: Add your control notification handler code here
	UpdateData(1);
    int len=m_edit_io.GetLength()-1;
	if(len<0)return;
	int i;
	char str[100];
	double m;
	for(i=0;i<=len;i++)
	{
        str[i]=m_edit_io[i];
	}
	double k=atof(str);
	if(deg==1)
	{
		while(k>360)
		{
		    k=k-360;
		}
		if(k==0||k==180)
		{
            AfxMessageBox ("语法不合!");UpdateData(0);return;
		}
        m=k/57.2957795130823208;
	}
	if(rad==1)
	{
		while(k>6.283185)
		{
		    k=k-6.283185;
		}
		if(k==0||k==3.141592653589793)
		{
            AfxMessageBox ("语法不合!");UpdateData(0);return;
		}
		m=k;
	}
	double temp=1/tan(m);
    m_edit_io.Format("%lf",temp);
	UpdateData(0);
}
void CMyDlg::OnBTNxy() 
{
	// TODO: Add your control notification handler code here
    UpdateData(1);
	m_edit_io+="^";
	xy=1;
	UpdateData(0);
}

void CMyDlg::OnRADIODec() //十进制
{
	// TODO: Add your control notification handler code here
	CWnd *pWnd=this->GetDlgItem(IDC_BTN_sin);
    pWnd->EnableWindow(1);
	pWnd=this->GetDlgItem(IDC_BTN_cos);
    pWnd->EnableWindow(1);
	pWnd=this->GetDlgItem(IDC_BTN_tan);
    pWnd->EnableWindow(1);
	pWnd=this->GetDlgItem(IDC_BTN_cot);
    pWnd->EnableWindow(1);
	pWnd=this->GetDlgItem(IDC_BTN_A);
    pWnd->EnableWindow(0);
	pWnd=this->GetDlgItem(IDC_BTN_B);
    pWnd->EnableWindow(0);
	pWnd=this->GetDlgItem(IDC_BTN_C);
    pWnd->EnableWindow(0);
	pWnd=this->GetDlgItem(IDC_BTN_D);
    pWnd->EnableWindow(0);
	pWnd=this->GetDlgItem(IDC_BTN_Ebig);
    pWnd->EnableWindow(0);
	pWnd=this->GetDlgItem(IDC_BTN_F);
    pWnd->EnableWindow(0);
	pWnd=this->GetDlgItem(IDC_BTN_8);
    pWnd->EnableWindow(1);
	pWnd=this->GetDlgItem(IDC_BTN_9);
    pWnd->EnableWindow(1);
	pWnd=this->GetDlgItem(IDC_BTN_7);
    pWnd->EnableWindow(1);
	pWnd=this->GetDlgItem(IDC_BTN_6);
    pWnd->EnableWindow(1);
	pWnd=this->GetDlgItem(IDC_BTN_5);
    pWnd->EnableWindow(1);
	pWnd=this->GetDlgItem(IDC_BTN_4);
    pWnd->EnableWindow(1);
	pWnd=this->GetDlgItem(IDC_BTN_3);
    pWnd->EnableWindow(1);
	pWnd=this->GetDlgItem(IDC_BTN_2);
    pWnd->EnableWindow(1);
    UpdateData(1);
//	int i=0;
//	char str[100];
	int len=m_edit_io.GetLength()-1;
    if(len<0)
	{
		b=10;return;
	}
    //for(;i<=len;i++)
	//{
	 //   str[i]=m_edit_io[i];
	//}
	
	
	if(b==2)
	{

		double m=otherstoten(m_edit_io,b);
		b=10;
        m_edit_io.Format("%lf",m);
    	UpdateData(0);
        
   }
	if(b==8)
	{
		double m=otherstoten(m_edit_io,b);
		b=10;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -