UpdateData(FALSE); } else
{m_Cnumber=m_Cnumber+n; number2=atof(m_Cnumber); UpdateData(FALSE); } }
void CCalculator1Dlg::OnOperationKey(UINT nID) {m_number=atof(m_Cnumber); switch(nID)
{case IDC_NUMBER_PlusMinus:m_number=-m_number; if(NumberState==1) number1=m_number; else
number2=m_number;
m_Cnumber.Format(\,m_number); UpdateData(FALSE); break;
case IDC_NUMBER_BackSpace: int n;
n=m_Cnumber.GetLength(); m_Cnumber=m_Cnumber.Left(n-1); UpdateData(FALSE); break;
case IDC_NUMBER_Divide:cal();
/*if(Zero==TRUE) {
m_Zero.ShowWindow(SW_HIDE); Zero=FALSE;}*/ OperationState=1; m_number=0; m_Cnumber=\; NumberState=2; break;
4
case IDC_NUMBER_Multiply:cal(); OperationState=2; m_number=0; m_Cnumber=\; NumberState=2; break;
case IDC_NUMBER_Add:cal();
OperationState=3; m_number=0; m_Cnumber=\; NumberState=2; break;
case IDC_NUMBER_Subtract:cal();
OperationState=4; m_number=0; m_Cnumber=\; NumberState=2; break;
case IDC_NUMBER_Square:cal();
OperationState=5; m_number=0; m_Cnumber=\; NumberState=2; break;
case IDC_NUMBER_Cube:cal();
OperationState=6; m_number=0; m_Cnumber=\; NumberState=2; break;
case IDC_NUMBER_Index:cal();
OperationState=7; m_number=0; m_Cnumber=\;
NumberState=2;
5
break;
OperationState=8; m_number=0; m_Cnumber=\; NumberState=2; break;
OperationState=9; m_number=0; m_Cnumber=\; NumberState=2; break;
OperationState=10; m_number=0; m_Cnumber=\; NumberState=2; break;
OperationState=11; m_number=0; m_Cnumber=\; NumberState=2; break;
number1=number2=m_number=0; m_Cnumber.Format(\,m_number); UpdateData(FALSE); m_Cnumber=\; NumberState=1; break;
number1=m_number=sqrt(number1);//实现3√xm_Cnumber.Format(\,m_number);
6
case IDC_NUMBER_X3:cal();
case IDC_NUMBER_Xy:cal();
case IDC_NUMBER_Degree:cal();
case IDC_NUMBER_Circledegree:cal();
case IDC_NUMBER_Clear:
case IDC_NUMBER_Sqrt:
UpdateData(FALSE); break;
number1=m_number=sin(number1); //正弦的计算 m_Cnumber.Format(\UpdateData(FALSE); break;
number1=m_number=cos(number1);//余弦的计算 m_Cnumber.Format(\,m_number); UpdateData(FALSE); break;
number1=m_number=tan(number1);//正切的计算 m_Cnumber.Format(\,m_number); UpdateData(FALSE); break;
number1=m_number=sinh(number1);//双曲正弦的计算 m_Cnumber.Format(\,m_number); UpdateData(FALSE); break;
number1=m_number=cosh(number1);//双曲余弦的计算m_Cnumber.Format(\,m_number); UpdateData(FALSE); break;
number1=m_number=tanh(number1);//双曲正切的计算m_Cnumber.Format(\,m_number); UpdateData(FALSE); break;
number1=m_number=fmod(number1,number2);//返回两数相除的余数 m_Cnumber.Format(\,m_number);
7
case IDC_NUMBER_Sin:
case IDC_NUMBER_Cos:
case IDC_NUMBER_Tan:
case IDC_NUMBER_Sinh:
case IDC_NUMBER_Cosh:
case IDC_NUMBER_Tanh:
case IDC_NUMBER_Rmainder:
相关推荐: