📄 unitsdlg.cpp
字号:
// UnitsDlg.cpp : implementation file
//
#include "stdafx.h"
#include "Units.h"
#include "UnitsDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CUnitsDlg dialog
TCHAR* szUnitsText[] ={L"长度", L"重量,质量", L"体积,容积", L"面积", L"弧度", L"功率", L"压力", L"速度", L"温度"};
TCHAR* szFathom[] = //长度单位
{
L"米,公尺", L"公里,千米", L"英里", L"码", L"英尺", L"英寸", L"海里(英)", L"海里国际量程",
L"毫米", L"厘米", L"忽米", L"丝米", L"分米", L"毫微米", L"微米"
};
TCHAR* szMaund[] = //重量单位
{
L"千克,公斤", L"克", L"公吨", L"磅常衡", L"磅金衡", L"磅药衡", L"盎司常衡",
L"盎司金衡", L"盎司药衡", L"吨英", L"吨美", L"英吨,长吨", L"美吨,短吨", L"毫克"
};
TCHAR* szCubage[] = //体积单位
{
L"升", L"毫升", L"加仑(英)", L"加仑(美)", L"夸脱英", L"夸脱美(液)", L"夸脱美(干)", L"品脱英",
L"品脱美(液)", L"品脱美(干)", L"蒲式耳(英)", L"蒲式耳(美)", L"微升", L"厘升"
};
TCHAR* szLandmeasure[] = //面积单位
{
L"平方米", L"公亩", L"英亩", L"公顷", L"平方公里", L"平方英里", L"平方码",
L"平方英尺", L"平方英寸", L"市亩", L"市分", L"市顷", L"市厘", L"市毫"
};
TCHAR* szRadian[] = //弧度单位
{
L"度", L"分", L"弧度", L"毫弧度", L"微弧度", L"圆周", L"直角", L"六分之一圆", L"八分之一圆"
};
TCHAR* szPower[] = //功率单位
{
L"千瓦", L"瓦", L"公斤.米/秒", L"千卡/秒", L"英热单位/时", L"米制/马力"
};
TCHAR* szPressure[] = //压力单位
{
L"千帕", L"帕", L"巴", L"托达因/平方厘米", L"毫米汞柱", L"毫米水柱", L"工程大气压", L"磅力/平方英寸", L"克力/平方厘米", L"大气压"
};
TCHAR* szSpeed[] = //MyMethod()
{
L"米/秒", L"英里/时", L"英尺/时"
};
TCHAR* szTemperature[] = //温度单位
{
L"摄氏度", L"华氏度", L"开式度"
};
CUnitsDlg::CUnitsDlg(CWnd* pParent /*=NULL*/)
: CDialog(CUnitsDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CUnitsDlg)
m_EditNumer = _T("0");
m_ComboLeft = _T("长度");
m_ComboRightDown = _T("米,公尺");
m_ComboRightUp = _T("米,公尺");
m_dValue2 = 0;
nCurSel = 0;
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
SetPoint = true;
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CUnitsDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CUnitsDlg)
DDX_Text(pDX, IDC_EDIT2, m_dValue2);
DDX_Text(pDX, IDC_EDIT1, m_EditNumer);
DDX_CBString(pDX, IDC_COMBO_LEFT, m_ComboLeft);
DDX_CBString(pDX, IDC_COMBO_RIGHTDOWN, m_ComboRightDown);
DDX_CBString(pDX, IDC_COMBO_RIGHTUP, m_ComboRightUp);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CUnitsDlg, CDialog)
//{{AFX_MSG_MAP(CUnitsDlg)
ON_BN_CLICKED(IDC_BUTTON_ZERO, OnButtonZero)
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_FOUR, OnButtonFour)
ON_BN_CLICKED(IDC_BUTTON_FIVE, OnButtonFive)
ON_BN_CLICKED(IDC_BUTTON_POINT, OnButtonPoint)
ON_BN_CLICKED(IDC_BUTTON_SIX, OnButtonSix)
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_C, OnButtonC)
ON_BN_CLICKED(IDC_BUTTON_BACK, OnButtonBack)
ON_CBN_SELCHANGE(IDC_COMBO_RIGHTUP, OnSelchangeComboRightup)
ON_CBN_SELCHANGE(IDC_COMBO_RIGHTDOWN, OnSelchangeComboRightdown)
ON_CBN_SELCHANGE(IDC_COMBO_LEFT, OnSelchangeComboLeft)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CUnitsDlg message handlers
BOOL CUnitsDlg::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
pComboLeft = (CComboBox*)GetDlgItem( IDC_COMBO_LEFT);
pComboRightUp = (CComboBox*)GetDlgItem( IDC_COMBO_RIGHTUP);
pComboRightDown = (CComboBox*)GetDlgItem( IDC_COMBO_RIGHTDOWN);
pComboLeft->ResetContent();
for (int i = 0;i<9;i++)
{
CString s = szUnitsText[i];
pComboLeft->AddString(s);
}
for (int j = 0;j<15;j++)
{
CString m_Efathom = szFathom[j];
pComboRightUp->AddString(m_Efathom);
pComboRightDown->AddString(m_Efathom);
}
// TODO: Add extra initialization here
return TRUE; // return TRUE unless you set the focus to a control
}
void CUnitsDlg::OnButtonZero()
{
// TODO: Add your control notification handler code here
CString m_EditTemp2;
double m_dValue1;
if(SetNew)
{
m_EditNumer = L"";
SetNew = false;
}
if (m_EditNumer == L"0" || m_EditNumer == L"")
{
SetNew = true;
m_EditNumer = L"0";
CEdit* pedit=(CEdit *)GetDlgItem(IDC_EDIT1);
pedit->SetWindowText(m_EditNumer);
}
else
{
m_EditNumer = m_EditNumer + L"0";
CEdit* pedit=(CEdit *)GetDlgItem(IDC_EDIT1);
pedit->SetWindowText(m_EditNumer);
}
m_dValue1 = wcstod(m_EditNumer, NULL);
m_dValue2 = GetNumber(m_dValue1);
m_EditTemp2.Format(L"%f",m_dValue2);
CEdit* pedit=(CEdit *)GetDlgItem(IDC_EDIT2);
pedit->SetWindowText(m_EditTemp2);
}
void CUnitsDlg::OnButtonOne()
{
// TODO: Add your control notification handler code here
CString m_EditTemp2;
double m_dValue1;
if(SetNew)
{
m_EditNumer = L"";
SetNew = false;
}
m_EditNumer = m_EditNumer + L"1";
CEdit* pedit=(CEdit *)GetDlgItem(IDC_EDIT1);
pedit->SetWindowText(m_EditNumer);
m_dValue1 = wcstod(m_EditNumer, NULL);
m_dValue2 = GetNumber(m_dValue1);
m_EditTemp2.Format(L"%f",m_dValue2);
CEdit* pedit1=(CEdit *)GetDlgItem(IDC_EDIT2);
pedit1->SetWindowText(m_EditTemp2);
}
void CUnitsDlg::OnButtonTwo()
{
// TODO: Add your control notification handler code here
CString m_EditTemp2;
double m_dValue1;
if(SetNew)
{
m_EditNumer = L"";
SetNew = false;
}
m_EditNumer = m_EditNumer + L"2";
CEdit* pedit=(CEdit *)GetDlgItem(IDC_EDIT1);
pedit->SetWindowText(m_EditNumer);
m_dValue1 = wcstod(m_EditNumer, NULL);
m_dValue2 = GetNumber(m_dValue1);
m_EditTemp2.Format(L"%f",m_dValue2);
CEdit* pedit1=(CEdit *)GetDlgItem(IDC_EDIT2);
pedit1->SetWindowText(m_EditTemp2);
}
void CUnitsDlg::OnButtonThree()
{
// TODO: Add your control notification handler code here
CString m_EditTemp2;
double m_dValue1;
if(SetNew)
{
m_EditNumer = L"";
SetNew = false;
}
m_EditNumer = m_EditNumer + L"3";
CEdit* pedit=(CEdit *)GetDlgItem(IDC_EDIT1);
pedit->SetWindowText(m_EditNumer);
m_dValue1 = wcstod(m_EditNumer, NULL);
m_dValue2 = GetNumber(m_dValue1);
m_EditTemp2.Format(L"%f",m_dValue2);
CEdit* pedit1=(CEdit *)GetDlgItem(IDC_EDIT2);
pedit1->SetWindowText(m_EditTemp2);
}
void CUnitsDlg::OnButtonFour()
{
// TODO: Add your control notification handler code here
CString m_EditTemp2;
double m_dValue1;
if(SetNew)
{
m_EditNumer = L"";
SetNew = false;
}
m_EditNumer = m_EditNumer + L"4";
CEdit* pedit=(CEdit *)GetDlgItem(IDC_EDIT1);
pedit->SetWindowText(m_EditNumer);
m_dValue1 = wcstod(m_EditNumer, NULL);
m_dValue2 = GetNumber(m_dValue1);
m_EditTemp2.Format(L"%f",m_dValue2);
CEdit* pedit1=(CEdit *)GetDlgItem(IDC_EDIT2);
pedit1->SetWindowText(m_EditTemp2);
}
void CUnitsDlg::OnButtonFive()
{
// TODO: Add your control notification handler code here
CString m_EditTemp2;
double m_dValue1;
if(SetNew)
{
m_EditNumer = L"";
SetNew = false;
}
m_EditNumer = m_EditNumer + L"5";
CEdit* pedit=(CEdit *)GetDlgItem(IDC_EDIT1);
pedit->SetWindowText(m_EditNumer);
m_dValue1 = wcstod(m_EditNumer, NULL);
m_dValue2 = GetNumber(m_dValue1);
m_EditTemp2.Format(L"%f",m_dValue2);
CEdit* pedit1=(CEdit *)GetDlgItem(IDC_EDIT2);
pedit1->SetWindowText(m_EditTemp2);
}
void CUnitsDlg::OnButtonPoint()
{
// TODO: Add your control notification handler code here
if (SetPoint)
{
m_EditNumer = m_EditNumer + L".";
SetPoint = false;
SetNew = false;
CEdit* pedit=(CEdit *)GetDlgItem(IDC_EDIT1);
pedit->SetWindowText(m_EditNumer);
}
}
void CUnitsDlg::OnButtonSix()
{
// TODO: Add your control notification handler code here
CString m_EditTemp2;
double m_dValue1;
if(SetNew)
{
m_EditNumer = L"";
SetNew = false;
}
m_EditNumer = m_EditNumer + L"6";
CEdit* pedit=(CEdit *)GetDlgItem(IDC_EDIT1);
pedit->SetWindowText(m_EditNumer);
m_dValue1 = wcstod(m_EditNumer, NULL);
m_dValue2 = GetNumber(m_dValue1);
m_EditTemp2.Format(L"%f",m_dValue2);
CEdit* pedit1=(CEdit *)GetDlgItem(IDC_EDIT2);
pedit1->SetWindowText(m_EditTemp2);
}
void CUnitsDlg::OnButtonSeven()
{
// TODO: Add your control notification handler code here
CString m_EditTemp2;
double m_dValue1;
if(SetNew)
{
m_EditNumer = L"";
SetNew = false;
}
m_EditNumer = m_EditNumer + L"7";
CEdit* pedit=(CEdit *)GetDlgItem(IDC_EDIT1);
pedit->SetWindowText(m_EditNumer);
m_dValue1 = wcstod(m_EditNumer, NULL);
m_dValue2 = GetNumber(m_dValue1);
m_EditTemp2.Format(L"%f",m_dValue2);
CEdit* pedit1=(CEdit *)GetDlgItem(IDC_EDIT2);
pedit1->SetWindowText(m_EditTemp2);
}
void CUnitsDlg::OnButtonEight()
{
// TODO: Add your control notification handler code here
CString m_EditTemp2;
double m_dValue1;
if(SetNew)
{
m_EditNumer = L"";
SetNew = false;
}
m_EditNumer = m_EditNumer + L"8";
CEdit* pedit=(CEdit *)GetDlgItem(IDC_EDIT1);
pedit->SetWindowText(m_EditNumer);
m_dValue1 = wcstod(m_EditNumer, NULL);
m_dValue2 = GetNumber(m_dValue1);
m_EditTemp2.Format(L"%f",m_dValue2);
CEdit* pedit1=(CEdit *)GetDlgItem(IDC_EDIT2);
pedit1->SetWindowText(m_EditTemp2);
}
void CUnitsDlg::OnButtonNine()
{
// TODO: Add your control notification handler code here
CString m_EditTemp2;
double m_dValue1;
if(SetNew)
{
m_EditNumer = L"";
SetNew = false;
}
m_EditNumer = m_EditNumer + L"9";
CEdit* pedit=(CEdit *)GetDlgItem(IDC_EDIT1);
pedit->SetWindowText(m_EditNumer);
m_dValue1 = wcstod(m_EditNumer, NULL);
m_dValue2 = GetNumber(m_dValue1);
m_EditTemp2.Format(L"%f",m_dValue2);
CEdit* pedit1=(CEdit *)GetDlgItem(IDC_EDIT2);
pedit1->SetWindowText(m_EditTemp2);
}
void CUnitsDlg::OnButtonC()
{
// TODO: Add your control notification handler code here
CString m_EditTemp2;
double m_dValue1;
m_EditNumer = L"0";
SetNew = true;
SetPoint = true;
CEdit* pedit=(CEdit *)GetDlgItem(IDC_EDIT1);
pedit->SetWindowText(m_EditNumer);
m_dValue1 = wcstod(m_EditNumer, NULL);
m_dValue2 = GetNumber(m_dValue1);
m_EditTemp2.Format(L"%f",m_dValue2);
CEdit* pedit1=(CEdit *)GetDlgItem(IDC_EDIT2);
pedit1->SetWindowText(m_EditTemp2);
}
void CUnitsDlg::OnButtonBack()
{
// TODO: Add your control notification handler code here
CString m_EditTemp2;
double m_dValue1;
int i = m_EditNumer.GetLength();
if (i>=1)
{
if (m_EditNumer.GetAt(i-1)=='.')
SetPoint = true;
m_EditNumer.Delete(i-1,1);
CEdit* pedit=(CEdit *)GetDlgItem(IDC_EDIT1);
pedit->SetWindowText(m_EditNumer);
if (i == 1)
{
m_EditNumer = L"0";
SetNew = true;
CEdit* pedit=(CEdit *)GetDlgItem(IDC_EDIT1);
pedit->SetWindowText(m_EditNumer);
}
}
m_dValue1 = wcstod(m_EditNumer, NULL);
m_dValue2 = GetNumber(m_dValue1);
m_EditTemp2.Format(L"%f",m_dValue2);
CEdit* pedit=(CEdit *)GetDlgItem(IDC_EDIT2);
pedit->SetWindowText(m_EditTemp2);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -