📄 calculatordlg.cpp
字号:
{
// TODO: Add your control notification handler code here
Result();
m_bit=10;
}
void CCalculatorDlg::On22()
{
// TODO: Add your control notification handler code here
Result();
m_bit=11;
}
void CCalculatorDlg::On23()
{
// TODO: Add your control notification handler code here
Result();
m_bit=12;
}
void CCalculatorDlg::On24()
{
// TODO: Add your control notification handler code here
Result();
m_bit=13;
}
void CCalculatorDlg::On25()
{
// TODO: Add your control notification handler code here
Result();
m_bit=14;
}
void CCalculatorDlg::On26()
{
// TODO: Add your control notification handler code here
Result();
m_bit=15;
}
void CCalculatorDlg::On27()
{
// TODO: Add your control notification handler code here
Result();
m_bit=16;
}
void CCalculatorDlg::On3()
{
// TODO: Add your control notification handler code here
m_StrBegin=m_StrBegin+"3";
if(!m_IsCheckPoint)//如果小数点按下了
m_DspEdit.OnDisplay(m_StrBegin+".");
else//如果小数点没有按下
m_DspEdit.OnDisplay(m_StrBegin);
}
void CCalculatorDlg::On4()
{
// TODO: Add your control notification handler code here
m_StrBegin=m_StrBegin+"4";
if(!m_IsCheckPoint)//如果小数点按下了
m_DspEdit.OnDisplay(m_StrBegin+".");
else//如果小数点没有按下
m_DspEdit.OnDisplay(m_StrBegin);
}
void CCalculatorDlg::On5()
{
// TODO: Add your control notification handler code here
m_StrBegin=m_StrBegin+"5";
if(!m_IsCheckPoint)//如果小数点按下了
m_DspEdit.OnDisplay(m_StrBegin+".");
else//如果小数点没有按下
m_DspEdit.OnDisplay(m_StrBegin);
}
void CCalculatorDlg::On6()
{
// TODO: Add your control notification handler code here
m_StrBegin=m_StrBegin+"6";
if(!m_IsCheckPoint)//如果小数点按下了
m_DspEdit.OnDisplay(m_StrBegin+".");
else//如果小数点没有按下
m_DspEdit.OnDisplay(m_StrBegin);
}
void CCalculatorDlg::On7()
{
// TODO: Add your control notification handler code here
m_StrBegin=m_StrBegin+"7";
if(!m_IsCheckPoint)//如果小数点按下了
m_DspEdit.OnDisplay(m_StrBegin+".");
else//如果小数点没有按下
m_DspEdit.OnDisplay(m_StrBegin);
}
void CCalculatorDlg::On8()
{
// TODO: Add your control notification handler code here
m_StrBegin=m_StrBegin+"8";
if(!m_IsCheckPoint)//如果小数点按下了
m_DspEdit.OnDisplay(m_StrBegin+".");
else//如果小数点没有按下
m_DspEdit.OnDisplay(m_StrBegin);
}
void CCalculatorDlg::On9()
{
// TODO: Add your control notification handler code here
m_StrBegin=m_StrBegin+"9";
if(!m_IsCheckPoint)//如果小数点按下了
m_DspEdit.OnDisplay(m_StrBegin+".");
else//如果小数点没有按下
m_DspEdit.OnDisplay(m_StrBegin);
}
int CCalculatorDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if(CDialog::OnCreate(lpCreateStruct)==-1)
return -1;
CRect rect;
GetWindowRect(&rect);
SetWindowPos(&wndTop,0,0,282,rect.Height(),SWP_NOMOVE|SWP_NOZORDER);
//TODO:Add your specialized creation code here
return 0;
}
void CCalculatorDlg::OnExtend()
{
CRect rect;
if(m_IsExtend)
{
GetWindowRect(&rect);
SetWindowPos(&wndTop,0,0,292,rect.Height(),SWP_NOMOVE|SWP_NOZORDER);
m_DspEdit.GetWindowRect(&rect);
m_DspEdit.SetWindowPos(NULL,rect.left,rect.top,221,rect.Height(),SWP_NOMOVE|SWP_NOZORDER);
m_DspStatic.GetWindowRect(&rect);
m_DspStatic.SetWindowPos(NULL,rect.left,rect.top,221,rect.Height(),SWP_NOMOVE|SWP_NOZORDER);
m_Menu->ModifyMenu(ID_EXTEND,MF_BYCOMMAND|MF_STRING,ID_EXTEND,"扩展");
m_IsExtend=FALSE;
}
else
{
GetWindowRect(&rect);
SetWindowPos(&wndTop,0,0,510,rect.Height(),SWP_NOMOVE|SWP_NOZORDER);
m_DspEdit.GetWindowRect(&rect);
m_DspEdit.SetWindowPos(NULL,rect.left,rect.top,401,rect.Height(),SWP_NOMOVE|SWP_NOZORDER);
m_DspStatic.GetWindowRect(&rect);
m_DspStatic.SetWindowPos(NULL,rect.left,rect.top,441,rect.Height(),SWP_NOMOVE|SWP_NOZORDER);
m_DspEdit.SetWindowPos(NULL,rect.left,rect.top,441,rect.Height(),SWP_NOMOVE|SWP_NOZORDER);
m_Menu->ModifyMenu(ID_EXTEND,MF_BYCOMMAND|MF_STRING,ID_EXTEND,"标准");
m_IsExtend=TRUE;
}
}
void CCalculatorDlg::OnOK()
{
//TODO:Add extra validation here
CDialog::OnOK();
}
void CCalculatorDlg::Result()
{
m_IsCheckPoint=false;
m_begin=atof(m_StrBegin);
switch(m_bit){
case 1:
m_end+=m_begin;
break;
case 2:
m_end-=m_begin;
break;
case 3:
m_end*=m_begin;
break;
case 4:
if(m_begin==0)
{
m_DspEdit.OnDisplay("除数不能为零");
return;
}
m_end/=m_begin;
break;
case 5:
if(m_end<0)
{
m_DspEdit.OnDisplay("函数输入无效!");
return;
}
m_end=sqrt(m_end);
break;
case 6:
if(m_end==0)
{
m_DspEdit.OnDisplay("分母输入无效!");
return;
}
m_end=1/m_end;
break;
case 7:
break;
case 8:
m_end=sin(convertToH(m_end));
break;
case 9:
m_end=cos(convertToH(m_end));
break;
case 10:
m_end=tan(convertToH(m_end));
break;
case 11:
m_end=m_end*m_end;
break;
case 12:
m_end=m_end*m_end*m_end;
break;
case 13:
m_end=pow(m_end,m_begin);
break;
case 14:
m_end=exp(m_end);
break;
case 15:
if(m_end<=0)
{
m_DspEdit.OnDisplay("函数输入无效!");
return;
}
m_end=log(m_end);
break;
case 16:
if(m_end<=0)
{
m_DspEdit.OnDisplay("函数输入无效!");
return;
}
m_end=log10(m_end);
break;
case 17:
m_end=m_end*-1;
break;
case 18:
int j;
for(j=m_end-1;j>=1;j--)
m_end*=j;
break;
case 19:
m_end=pow(10,m_end);
break;
default:
m_end=m_begin;
break;
}
m_begin=0.0;
m_bit=0;
m_StrBegin="";
int i=sprintf(m_buffer,"%10.12f",m_end);
TZero(m_buffer,i);
m_DspEdit.OnDisplay(m_buffer);
}
void CCalculatorDlg::TZero(char *pStr,int iLen)//用于去掉字符串尾部多余的零。
{
char * p = &pStr[iLen-1];
while (1) {
if( *p != '0') break;
* p -- =0;
}
}
void CCalculatorDlg::OnCancel()
{
// TODO: Add extra cleanup here
CDialog::OnCancel();
}
void CCalculatorDlg::OnZOF()
{
// TODO: Add your control notification handler code here
Result();
m_bit=17;
}
void CCalculatorDlg::OnN()
{
// TODO: Add your control notification handler code here
Result();
m_bit=18;
}
void CCalculatorDlg::On10X()
{
// TODO: Add your control notification handler code here
Result();
m_bit=19;
}
float CCalculatorDlg::convertToH(float w)
{
float c;
c=w*YUANZHOU/180;
return c;
}
void CCalculatorDlg::OnABOUT()
{
// TODO: Add your control notification handler code here
MessageBox(" 王珍 23020051204438");
}
void CCalculatorDlg::OnHex()
{
// TODO: Add your control notification handler code here
}
void CCalculatorDlg::OnOct()
{
// TODO: Add your control notification handler code here
}
void CCalculatorDlg::OnRad()
{
// TODO: Add your control notification handler code here
}
void CCalculatorDlg::OnDec()
{
// TODO: Add your control notification handler code here
}
void CCalculatorDlg::OnBin()
{
// TODO: Add your control notification handler code here
}
void CCalculatorDlg::OnDegree()
{
// TODO: Add your control notification handler code here
}
void CCalculatorDlg::OnTidu()
{
// TODO: Add your control notification handler code here
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -