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

218 lines
4.3 KiB
C++

#include "stdafx.h"
#include "DXCHDlg.h"
#include "uihistory.h"
IMPLEMENT_DYNAMIC(CDXCHDlg, CDialog)
CDXCHDlg::CDXCHDlg(CWnd* pParent /*=NULL*/)
: CDialog(CDXCHDlg::IDD, pParent)
, m_sNo(_T(""))
, m_sH(_T("2100"))
, m_sH2(_T("300"))
, m_dColSp(1000)
, m_dRow1H(800)
, m_dFrmThick(65)
, m_dFrmWidth(135)
, m_dThick(30)
, m_sMaterial(_T("断桥铝合金"))
, m_sProvider(_T("定做"))
, m_dOut1(500)
, m_dOut2(900)
, m_bFTG(FALSE)
, m_bAddBaf1(FALSE)
, m_bAddBaf2(FALSE)
, m_dExt1(150)
, m_dExt2(270)
, m_dGlassOffIn(50)
, m_dBafThick(100)
, m_bBayWin(FALSE)
{
//{{AFX_DATA_INIT(CDialog)
//}}AFX_DATA_INIT
GET_CACHE(CDXCHDlg
, %s %s %s %f %f %f %f %f %s %s
%f %f %d %d %d %f %f %f %f %d
, &m_sNo
, &m_sH
, &m_sH2
, &m_dColSp
, &m_dRow1H
, &m_dFrmThick
, &m_dFrmWidth
, &m_dThick
, &m_sMaterial
, &m_sProvider
, &m_dOut1
, &m_dOut2
, &m_bFTG
, &m_bAddBaf1
, &m_bAddBaf2
, &m_dExt1
, &m_dExt2
, &m_dGlassOffIn
, &m_dBafThick
, &m_bBayWin);
}
CDXCHDlg::~CDXCHDlg()
{
}
void CDXCHDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDXCHDlg)
DDX_Text(pDX, IDC_EDIT1, m_sNo);
DDX_CBString(pDX, IDC_COMBO1, m_sH);
DDX_CBString(pDX, IDC_COMBO8, m_sH2);
DDX_Text(pDX, IDC_EDIT4, m_dColSp);
DDX_Text(pDX, IDC_EDIT5, m_dRow1H);
DDX_Text(pDX, IDC_EDIT7, m_dThick);
DDX_Text(pDX, IDC_EDIT8, m_dFrmThick);
DDX_Text(pDX, IDC_EDIT9, m_dFrmWidth);
DDX_Text(pDX, IDC_EDIT3, m_sMaterial);
DDX_Text(pDX, IDC_EDIT2, m_sProvider);
//}}AFX_DATA_MAP
DDX_Text(pDX, IDC_EDIT6, m_dOut1);
DDX_Text(pDX, IDC_EDIT10, m_dOut2);
DDX_Check(pDX, IDC_CHECK2, m_bFTG);
DDX_Check(pDX, IDC_CHECK6, m_bAddBaf1);
DDX_Check(pDX, IDC_CHECK9, m_bAddBaf2);
DDX_Text(pDX, IDC_EDIT11, m_dExt1);
DDX_Text(pDX, IDC_EDIT15, m_dExt2);
DDX_Text(pDX, IDC_EDIT16, m_dGlassOffIn);
DDX_Text(pDX, IDC_EDIT17, m_dBafThick);
DDX_Check(pDX, IDC_CHECK1, m_bBayWin);
}
BEGIN_MESSAGE_MAP(CDXCHDlg, CDialog)
//{{AFX_MSG_MAP(CDXCHDlg)
ON_BN_CLICKED(IDOK, &CDXCHDlg::OnBnClickedOk)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
void CDXCHDlg::GetOpeningData(OpeningData& data) const
{
data.nType = 2;
if (m_bBayWin)
data.nFlag = 2;//角凸窗
else
data.nFlag = 0;//带型窗户
data.dWidth = 99999;//实际取路径
data.dBomEl = _ttof(m_sH2);
data.dHeight = _ttof(m_sH);
//data.dThick = m_dThick;
if (m_bFTG)
{
data.dBomEl = 0;
}
memset(data.dXData,0,sizeof(double)*16);
data.dXData[0] = m_dColSp;
data.dXData[1] = m_dRow1H;
data.dXData[2] = m_dFrmThick;
data.dXData[3] = m_dFrmWidth;
data.dXData[4] = m_dThick;
data.dXData[5] = m_dOut1;
data.dXData[6] = m_dOut2;
data.dXData[7] = m_dExt1;
data.dXData[8] = m_dExt2;
data.dXData[9] = m_dGlassOffIn;
data.dXData[10] = m_dBafThick;
data.bBayWin = m_bBayWin;
data.bFTG = m_bFTG;
data.bAddBaf1 = m_bAddBaf1;
data.bAddBaf2 = m_bAddBaf2;
_tcscpy(data.szBlockName2d,_T("*"));
_tcscpy(data.szBlockName3d,_T("*"));
_tcscpy(data.szName,_T("带型窗户"));
_tcscpy(data.szSpec,m_sMaterial);
_tcscpy(data.szFactory,m_sProvider);
_tcscpy(data.szNo,m_sNo);
}
void CDXCHDlg::SetOpeningData(const OpeningData& data)
{
m_bBayWin = data.nFlag;
m_sH2.Format(_T("%f"), data.dBomEl);
m_sH.Format(_T("%f"), data.dHeight);
m_dColSp = data.dXData[0];
m_dRow1H = data.dXData[1];
m_dFrmThick = data.dXData[2];
m_dFrmWidth = data.dXData[3];
m_dThick = data.dXData[4];
m_dOut1 = data.dXData[5];
m_dOut2 = data.dXData[6];
m_dExt1 = data.dXData[7];
m_dExt2 = data.dXData[8];
m_dGlassOffIn = data.dXData[9];
m_dBafThick = data.dXData[10];
m_bBayWin = data.bBayWin;
m_bFTG = data.bFTG;
m_bAddBaf1 = data.bAddBaf1;
m_bAddBaf2 = data.bAddBaf2;
m_sMaterial = data.szSpec;
m_sProvider = data.szFactory;
m_sNo = data.szNo;
}
BOOL CDXCHDlg::OnInitDialog()
{
CDialog::OnInitDialog();
UpdateData(FALSE);
return TRUE;
}
void CDXCHDlg::OnBnClickedOk()
{
UpdateData();
SET_CACHE(CDXCHDlg
, %s %s %s %f %f %f %f %f %s %s
%f %f %d %d %d %f %f %f %f %d
, m_sNo
, m_sH
, m_sH2
, m_dColSp
, m_dRow1H
, m_dFrmThick
, m_dFrmWidth
, m_dThick
, m_sMaterial
, m_sProvider
, m_dOut1
, m_dOut2
, m_bFTG
, m_bAddBaf1
, m_bAddBaf2
, m_dExt1
, m_dExt2
, m_dGlassOffIn
, m_dBafThick
, m_bBayWin);
if (m_dRow1H > _ttof(m_sH))
{
AfxMessageBox(_T("第一层分割高不可以大于窗高!"));
return;
}
EndDialog(IDOK);
}