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

📄 unitsdlg.cpp

📁 实现长度、重量、体积等单位换算。在wince 环境下开发
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// 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 + -