#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); }