📄 calcudlg.cpp
字号:
// calcuDlg.cpp : implementation file
//
#include "stdafx.h"
#include "calcu.h"
#include "calcuDlg.h"
#include "math.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CCalcuDlg dialog
CCalcuDlg::CCalcuDlg(CWnd* pParent /*=NULL*/)
: CDialog(CCalcuDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CCalcuDlg)
m_EditNumber = _T("");
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_storevalue=0.0;
m_firstoperator=0;
m_operate='n';
Swap = false;
first = false;
deletepoint = false;
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CCalcuDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CCalcuDlg)
DDX_Text(pDX, IDC_EDIT1, m_EditNumber);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CCalcuDlg, CDialog)
//{{AFX_MSG_MAP(CCalcuDlg)
ON_BN_CLICKED(IDC_BUTTON_ONE, OnButtonOne)
ON_BN_CLICKED(IDC_BUTTON_TWO, OnButtonTwo)
ON_BN_CLICKED(IDC_BUTTON_THREE, OnButtonThree)
ON_BN_CLICKED(IDC_BUTTON_MINUS, OnButtonMinus)
ON_BN_CLICKED(IDC_BUTTON_COUNTDOWN, OnButtonCountdown)
ON_BN_CLICKED(IDC_BUTTON_MULT, OnButtonMult)
ON_BN_CLICKED(IDC_BUTTON_SIX, OnButtonSix)
ON_BN_CLICKED(IDC_BUTTON_FIVE, OnButtonFive)
ON_BN_CLICKED(IDC_BUTTON_FOUR, OnButtonFour)
ON_BN_CLICKED(IDC_BUTTON_MR, OnButtonMr)
ON_BN_CLICKED(IDC_BUTTON_MC, OnButtonMc)
ON_BN_CLICKED(IDC_BUTTON_SEVEN, OnButtonSeven)
ON_BN_CLICKED(IDC_BUTTON_EIGHT, OnButtonEight)
ON_BN_CLICKED(IDC_BUTTON_NINE, OnButtonNine)
ON_BN_CLICKED(IDC_BUTTON_DIVIDE, OnButtonDivide)
ON_BN_CLICKED(IDC_BUTTON_SQRT, OnButtonSqrt)
ON_BN_CLICKED(IDC_BUTTON_EQUAL, OnButtonEqual)
ON_BN_CLICKED(IDC_BUTTON_MADD, OnButtonMadd)
ON_BN_CLICKED(IDC_BUTTON_ZERO, OnButtonZero)
ON_BN_CLICKED(IDC_BUTTON_SIGN, OnButtonSign)
ON_BN_CLICKED(IDC_BUTTON_POINT, OnButtonPoint)
ON_BN_CLICKED(IDC_BUTTON_ADD, OnButtonAdd)
ON_BN_CLICKED(IDC_BUTTON_C, OnButtonC)
ON_BN_CLICKED(IDC_BUTTON_CE, OnButtonCe)
ON_BN_CLICKED(IDC_BUTTON_BACKSPACE, OnButtonBackspace)
ON_BN_CLICKED(IDC_BUTTON_PERCENT, OnButtonPercent)
ON_BN_CLICKED(IDC_BUTTON_MS, OnButtonMs)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CCalcuDlg message handlers
BOOL CCalcuDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
CenterWindow(GetDesktopWindow()); // center to the hpc screen
point = true;
// SetWindowPos (NULL , 100 , 60 , 200 , 180 , SWP_NOMOVE|SWP_NOZORDER );
// TODO: Add extra initialization here
return TRUE; // return TRUE unless you set the focus to a control
}
void CCalcuDlg::OnButtonOne()
{
// TODO: Add your control notification handler code here
double count1;
if (m_EditNumber == L"Error")
return;
if (SetNew)
{
m_EditNumber = L" ";
SetNew = false;
}
if (m_EditNumber == L"0")
m_EditNumber = L"";
m_EditNumber = m_EditNumber + L"1";
memset(temp,'\0',256);
MyStrcpy(temp,m_EditNumber);
count1=atof(temp);
m_EditNumber.Format(L"%f",count1);
SetPoint = true;
Swap = false;
point = true;
first = false;
deletepoint = true;
show();
}
void CCalcuDlg::OnButtonTwo()
{
// TODO: Add your control notification handler code here
double count2;
if (m_EditNumber == L"Error")
return;
if (SetNew)
{
m_EditNumber = L" ";
SetNew = false;
}
if (m_EditNumber == L"0")
m_EditNumber = L"";
m_EditNumber = m_EditNumber + L"2";
memset(temp,'\0',256);
MyStrcpy(temp,m_EditNumber);
count2=atof(temp);
m_EditNumber.Format(L"%f",count2);
SetPoint = true;
Swap = false;
point = true;
first = false;
deletepoint = true;
show();
}
void CCalcuDlg::OnButtonThree()
{
// TODO: Add your control notification handler code here
double count3;
if (m_EditNumber == L"Error")
return;
if (SetNew)
{
m_EditNumber = L" ";
SetNew = false;
}
if (m_EditNumber == L"0")
m_EditNumber = L"";
m_EditNumber = m_EditNumber + L"3";
memset(temp,'\0',256);
MyStrcpy(temp,m_EditNumber);
count3=atof(temp);
m_EditNumber.Format(L"%f",count3);
SetPoint = true;
Swap = false;
point = true;
first = false;
deletepoint = true;
show();
}
void CCalcuDlg::OnButtonMinus()
{
// TODO: Add your control notification handler code here
// double b;
// char temp[256];
if (m_EditNumber == L"Error")
return;
OnButtonEqual();
MyStrcpy(temp,m_EditNumber);
temp[m_EditNumber.GetLength()]='\0';
b=atof(temp);
m_firstoperator=b;
b = 0;
SetNew = true;
SetPoint = false;
Swap = true;
first = true;
show();
m_EditCopy = m_EditNumber;
m_operate='-';
m_EditNumber = L"0";
}
void CCalcuDlg::OnButtonCountdown()
{
// TODO: Add your control notification handler code here
// double b;
// char temp[256];
if (m_EditNumber == L"Error")
return;
if (Swap)
{
m_EditNumber = m_EditCopy;
Swap = false;
}
memset(temp,'\0',256);
MyStrcpy(temp,m_EditNumber);
b=atof(temp);
SetNew = true;
SetPoint = false;
first = true;
if(b == 0.0)
{
m_EditNumber = L"Error";
show();
return;
}
m_firstoperator=1/b;
m_EditNumber.Format(L"%f",m_firstoperator);
m_EditCopy = m_EditNumber;
show();
m_operate = '\0';
}
void CCalcuDlg::OnButtonMult()
{
// TODO: Add your control notification handler code here
// double b;
// char temp[256];
if (m_EditNumber == L"Error")
return;
OnButtonEqual();
MyStrcpy(temp,m_EditNumber);
temp[m_EditNumber.GetLength()]='\0';
b=atof(temp);
m_firstoperator=b;
SetNew = true;
SetPoint = false;
Swap = true;
first = true;
show();
// UpdateData(false);
m_operate='*';
m_EditCopy = m_EditNumber;
m_EditNumber = L"1";
}
void CCalcuDlg::OnButtonSix()
{
// TODO: Add your control notification handler code here
double count6;
if (m_EditNumber == L"Error")
return;
if (SetNew)
{
m_EditNumber = L" ";
SetNew = false;
}
if (m_EditNumber == L"0")
m_EditNumber = L"";
m_EditNumber = m_EditNumber + L"6";
memset(temp,'\0',256);
MyStrcpy(temp,m_EditNumber);
count6=atof(temp);
m_EditNumber.Format(L"%f",count6);
SetPoint = true;
Swap = false;
point = true;
first = false;
deletepoint = true;
show();
}
void CCalcuDlg::OnButtonFive()
{
// TODO: Add your control notification handler code here
double count5;
if (m_EditNumber == L"Error")
return;
if (SetNew)
{
m_EditNumber = L" ";
SetNew = false;
}
if (m_EditNumber == L"0")
m_EditNumber = L"";
m_EditNumber = m_EditNumber + L"5";
memset(temp,'\0',256);
MyStrcpy(temp,m_EditNumber);
count5=atof(temp);
m_EditNumber.Format(L"%f",count5);
SetPoint = true;
Swap = false;
point = true;
first = false;
deletepoint = true;
show();
}
void CCalcuDlg::OnButtonFour()
{
// TODO: Add your control notification handler code here
double count4;
if (m_EditNumber == L"Error")
return;
if (SetNew)
{
m_EditNumber = L" ";
SetNew = false;
}
if (m_EditNumber == L"0")
m_EditNumber = L"";
m_EditNumber = m_EditNumber + L"4";
memset(temp,'\0',256);
MyStrcpy(temp,m_EditNumber);
count4=atof(temp);
m_EditNumber.Format(L"%f",count4);
SetPoint = true;
Swap = false;
point = true;
first = false;
deletepoint = true;
show();
}
void CCalcuDlg::OnButtonMr()
{
// TODO: Add your control notification handler code here
if (m_EditNumber == L"Error")
return;
m_EditNumber.Format(L"%f",Savedata);
show();
SetNew = true;
}
void CCalcuDlg::OnButtonMc()
{
// TODO: Add your control notification handler code here
if (m_EditNumber == L"Error")
return;
Savedata = 0.0;
}
void CCalcuDlg::OnButtonSeven()
{
// TODO: Add your control notification handler code here
double count7;
if (m_EditNumber == L"Error")
return;
if (SetNew)
{
m_EditNumber = L" ";
SetNew = false;
}
if (m_EditNumber == L"0")
m_EditNumber = L"";
m_EditNumber = m_EditNumber + L"7";
memset(temp,'\0',256);
MyStrcpy(temp,m_EditNumber);
count7=atof(temp);
m_EditNumber.Format(L"%f",count7);
SetPoint = true;
Swap = false;
point = true;
first = false;
deletepoint = true;
show();
}
void CCalcuDlg::OnButtonEight()
{
// TODO: Add your control notification handler code here
double count8;
if (m_EditNumber == L"Error")
return;
if (SetNew)
{
m_EditNumber = L" ";
SetNew = false;
}
if (m_EditNumber == L"0")
m_EditNumber = L"";
m_EditNumber = m_EditNumber + L"8";
memset(temp,'\0',256);
MyStrcpy(temp,m_EditNumber);
count8=atof(temp);
m_EditNumber.Format(L"%f",count8);
SetPoint = true;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -