118 lines
2.4 KiB
C++
118 lines
2.4 KiB
C++
// UnitSetDlg.cpp : 实现文件
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "UnitSetDlg.h"
|
|
|
|
IMPLEMENT_DYNAMIC(CUnitSetDlg, CModelessDialog)
|
|
|
|
CUnitSetDlg::CUnitSetDlg(CWnd* pParent /*=NULL*/)
|
|
: CModelessDialog(CUnitSetDlg::IDD, pParent)
|
|
{
|
|
if (!DocGetMeterUnitDraw())
|
|
{
|
|
if (DocGetMeterUnitDim())
|
|
m_nUnitType=1;
|
|
else
|
|
m_nUnitType=0;
|
|
}
|
|
else
|
|
m_nUnitType=2;
|
|
m_csPScale.Format(_T("%g"), DocGetPScale());
|
|
}
|
|
|
|
CUnitSetDlg::~CUnitSetDlg()
|
|
{
|
|
}
|
|
|
|
void CUnitSetDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CModelessDialog::DoDataExchange(pDX);
|
|
DDX_CBIndex(pDX,IDC_CMB_UNIT, m_nUnitType);//单位换算
|
|
DDX_Control(pDX, IDC_CMB_UNIT, m_cmbUnitSet);
|
|
DDX_Text(pDX, IDC_CMB_PSCALE, m_csPScale);//当前比例
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CUnitSetDlg, CModelessDialog)
|
|
ON_CBN_SELCHANGE(IDC_CMB_UNIT, OnCbnSelchangeUnit)
|
|
ON_BN_CLICKED(IDOK, &CUnitSetDlg::OnBnClickedOk)
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
void CUnitSetDlg::OnCbnSelchangeUnit()
|
|
{
|
|
int oldType = m_nUnitType;
|
|
UpdateData();
|
|
|
|
//m_nUnitType == 1 || m_nUnitType == 0
|
|
//m_nUnitType == 2
|
|
//当从2变 1 或者 0的时候,*1000
|
|
//当1 或者 0b变2的时候,/1000
|
|
if ((oldType == 1 || oldType == 0) && m_nUnitType == 2)
|
|
{
|
|
double dPscale = _wtof(m_csPScale) / 1000.0;
|
|
//m_csPScale = Dist2Str(dPscale);
|
|
m_csPScale.Format(_T("%g"), dPscale);
|
|
UpdateData(FALSE);
|
|
}
|
|
else if (oldType == 2 && (m_nUnitType == 1 || m_nUnitType == 0))
|
|
{
|
|
double dPscale = _wtof(m_csPScale) * 1000.0;
|
|
//m_csPScale = Dist2Str(dPscale);
|
|
m_csPScale.Format(_T("%g"), dPscale);
|
|
UpdateData(FALSE);
|
|
}
|
|
}
|
|
|
|
|
|
void CUnitSetDlg::OnBnClickedOk()
|
|
{
|
|
UpdateGlobal();
|
|
CModelessDialog::OnOK();
|
|
}
|
|
|
|
void CUnitSetDlg::UpdateGlobal()
|
|
{
|
|
if (m_nUnitType==0)
|
|
{
|
|
DocSetMeterUnitDraw(FALSE);
|
|
DocSetMeterUnitDim(FALSE);
|
|
}
|
|
else if (m_nUnitType==1)
|
|
{
|
|
DocSetMeterUnitDraw(FALSE);
|
|
DocSetMeterUnitDim(TRUE);
|
|
}
|
|
else
|
|
{
|
|
DocSetMeterUnitDraw(TRUE);
|
|
DocSetMeterUnitDim(TRUE);
|
|
}
|
|
|
|
if (_tstof(m_csPScale)>0) {
|
|
DocSetPScale(_tstof(m_csPScale));
|
|
DocStatus();
|
|
}
|
|
}
|
|
|
|
BOOL CUnitSetDlg::OnInitDialog()
|
|
{
|
|
if(!CModelessDialog::OnInitDialog())
|
|
return FALSE;
|
|
((CComboBox*)GetDlgItem(IDC_CMB_UNIT))->InsertString(0, _T("mm mm"));
|
|
((CComboBox*)GetDlgItem(IDC_CMB_UNIT))->InsertString(1, _T("mm M"));
|
|
((CComboBox*)GetDlgItem(IDC_CMB_UNIT))->InsertString(2, _T("M M"));
|
|
UpdateData(FALSE);
|
|
return TRUE;
|
|
}
|
|
|
|
void UnitSet()
|
|
{
|
|
CUnitSetDlg dlg;
|
|
if(IDOK == dlg.DoModal())
|
|
{
|
|
dlg.UpdateGlobal();
|
|
}
|
|
}
|