Files
envi-code/SourceCode/Code2026/HvacCmd/ReducerDlg.cpp
T
gjm 164968b62e chore
把非utf8-bom编码的cpp/h文件改为 utf8 bom 编码, msvc识别utf8编码时,如果不是bom格式的,会使用当前cp_oem来解码.
2026-10-04 00:04:20 +08:00

139 lines
2.7 KiB
C++

#include "stdafx.h"
#include "ReducerDlg.h"
IMPLEMENT_DYNAMIC(CReducerDlg, CDialog)
CReducerDlg::CReducerDlg(CWnd* pParent /*=NULL*/)
: CDialog(CReducerDlg::IDD, pParent)
, m_nEcCen(0)
, m_dW(100)
, m_dH(100)
, m_sEndW(_T("150"))
, m_dL(200)
, m_dAngle(60)
, m_bAngleCal(FALSE)
, m_nZECen(0)
{
}
CReducerDlg::~CReducerDlg()
{
}
void CReducerDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX, IDC_EDIT5, m_dW);
DDX_CBString(pDX, IDC_COMBO2, m_sEndW);
DDX_CBString(pDX, IDC_COMBO3, m_sEndH);
DDX_Text(pDX, IDC_EDIT6, m_dL);
DDX_Text(pDX, IDC_EDIT7, m_dAngle);
DDX_Text(pDX, IDC_EDIT8, m_dH);
DDX_Check(pDX, IDC_CHECK1, m_bAngleCal);
DDX_Control(pDX, IDC_EDIT6, m_wndEditL);
DDX_Radio(pDX, IDC_RADIO1, m_nEcCen);
DDX_Radio(pDX, IDC_RADIO4, m_nZECen);
}
BEGIN_MESSAGE_MAP(CReducerDlg, CDialog)
ON_BN_CLICKED(IDOK, &CReducerDlg::OnBnClickedOk)
ON_EN_KILLFOCUS(IDC_EDIT7, &CReducerDlg::OnEnKillfocusEdit7)
//ON_CBN_SELENDOK(IDC_COMBO2, &CReducerDlg::OnCbnSelendokCombo2)
ON_BN_CLICKED(IDC_CHECK1, &CReducerDlg::OnBnClickedCheck1)
ON_CBN_CLOSEUP(IDC_COMBO2, &CReducerDlg::OnCbnCloseupCombo2)
END_MESSAGE_MAP()
BOOL CReducerDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_wndEditL.EnableWindow(!m_bAngleCal);
UpdateData(FALSE);
return TRUE;
}
void CReducerDlg::OnBnClickedOk()
{
UpdateData();
if ( fabs(_ttof(m_sEndW) - m_dW) < 1.e-2 &&
fabs(_ttof(m_sEndH) - m_dH) < 1.e-2)
{
AfxMessageBox(_T("变径首尾宽高不能相同!请重新选择宽高度!"));
return;
}
if (m_dL < 10.0 )
{
AfxMessageBox(_T("变径长度过小!请重新输入长度!"));
return;
}
if (m_dAngle < 10.0)
{
AfxMessageBox(_T("变径角度过小!请重新输入角度!"));
return;
}
OnOK();
}
void CReducerDlg::SetCurWidth(double dW,double dL)
{
m_dW = dW;
m_dL = dL;
}
void CReducerDlg::SetCurHeight(double dH)
{
m_dH = dH;
m_sEndH.Format(_T("%d"),(int)(dH + 0.5));
}
CPoint CReducerDlg::GetReducer(AcGePoint3d& ptSize,double& dEH) const
{
ptSize.x = m_dW;
ptSize.y = _ttof(m_sEndW);
ptSize.z = m_dL;
dEH = _ttof(m_sEndH);
CPoint ptEc;
ptEc.x = m_nEcCen;
ptEc.y = m_nZECen;
return ptEc;
}
void CReducerDlg::OnEnKillfocusEdit7()
{
//计算变径长度
UpdateData();
if (m_bAngleCal)
{
double dWx = 0.5 * fabs(m_dW - _ttof(m_sEndW));
m_dL = (int)( tan(m_dAngle * PI / 180.0) * dWx + 0.5);
UpdateData(FALSE);
}
}
void CReducerDlg::OnBnClickedCheck1()
{
UpdateData();
m_wndEditL.EnableWindow(!m_bAngleCal);
}
void CReducerDlg::OnCbnCloseupCombo2()
{
//计算变径长度
UpdateData();
if (m_bAngleCal)
{
double dWx = 0.5 * fabs(m_dW - _ttof(m_sEndW));
m_dL = (int)( tan(m_dAngle * PI / 180.0) * dWx + 0.5);
UpdateData(FALSE);
}
}