#include "stdafx.h" #include "RLYCDlg.h" #include "KTCADUtilityEx.h" #include "AecDbEarthWorm.h" #include "CCSYDlg.h" #include "UITools.h" #include "KKSJDlg.h" IMPLEMENT_DYNAMIC(CRLYCDlg, CBaseDialog) CRLYCDlg::CRLYCDlg(CWnd* pParent /*=NULL*/) : CBaseDialog(CRLYCDlg::IDD, _T("RLYC"), IDC_STATIC_FRM, pParent) , m_fYinChuKou_HengXiang_W(0) , m_fYinChuKou_ZhongXiang_W(0) , m_fYinChuKou_Thickness(0) , m_fQiangTi_Size(0) , m_fGuanLang_Thinckness(0) { } CRLYCDlg::~CRLYCDlg() { } void CRLYCDlg::DoDataExchange(CDataExchange* pDX) { CBaseDialog::DoDataExchange(pDX); DDX_Text(pDX, IDC_EDIT1, m_fYinChuKou_HengXiang_W); DDV_MinMaxFloat(pDX, m_fYinChuKou_HengXiang_W, 0.1f, 500000.0f); DDX_Text(pDX, IDC_EDIT3, m_fYinChuKou_ZhongXiang_W); DDV_MinMaxFloat(pDX, m_fYinChuKou_ZhongXiang_W, 0.1f, 500000.0f); DDX_Text(pDX, IDC_EDIT4, m_fYinChuKou_Thickness); DDV_MinMaxFloat(pDX, m_fYinChuKou_Thickness, 0.1f, 500000.0f); DDX_Text(pDX, IDC_EDIT5, m_fQiangTi_Size); DDV_MinMaxFloat(pDX, m_fQiangTi_Size, 0.1f, 500000.0f); DDX_Text(pDX, IDC_EDIT6, m_fGuanLang_Thinckness); DDV_MinMaxFloat(pDX, m_fGuanLang_Thinckness, 0.1f, 500000.0f); DDX_Control(pDX, IDC_LIST1, m_LstCtrl); } BEGIN_MESSAGE_MAP(CRLYCDlg, CBaseDialog) ON_BN_CLICKED(IDOK, &CRLYCDlg::OnBnClickedOk) ON_BN_CLICKED(IDC_BUTTON5, &CRLYCDlg::OnBnClickedButton5) ON_BN_CLICKED(IDC_BUTTON1, &CRLYCDlg::OnBnClickedButton1) ON_BN_CLICKED(IDC_BUTTON4, &CRLYCDlg::OnBnClickedButton4) END_MESSAGE_MAP() BOOL CRLYCDlg::OnInitDialog() { CBaseDialog::OnInitDialog(); m_fYinChuKou_HengXiang_W = m_data.fNodeDef[0]; m_fYinChuKou_ZhongXiang_W = m_data.fNodeDef[1]; m_fYinChuKou_Thickness = m_data.fNodeDef[2]; m_fQiangTi_Size = m_data.fNodeDef[3]; m_fGuanLang_Thinckness = m_data.fNodeDef[4]; UpdateData(FALSE); InitLstCtrl(); RefreshLstCtrl(); return TRUE; } void CRLYCDlg::SetDefaultFnctNode(EWFnctNode &fncNode) { memset(&fncNode, 0, sizeof(EWFnctNode)); fncNode.dDistFromPre = AS_MUNIT(9000.0);//3米位置,距离凸起前侧 fncNode.eFnType = kHTOutLetHouse; _tcscpy(fncNode.szNodeSpec, _T("热力舱引出口")); fncNode.nRoomIndex = 1;//舱0 fncNode.fNodeDef[0] = AS_MUNITF(5300.0f);//管廊方向 长度尺寸含壁厚回水,供水口侧 fncNode.fNodeDef[1] = AS_MUNITF(3200.0f);//管廊方向 长度尺寸含壁厚供水侧 fncNode.fNodeDef[2] = AS_MUNITF(6000.0f);//高 含壁厚 fncNode.fNodeDef[3] = AS_MUNITF(2400.0f);//腔体水平向外增加尺寸 含壁厚 fncNode.fNodeDef[4] = AS_MUNITF(2400.0f);//管廊顶部凸出 尺寸含壁厚 //开口 fncNode.fNodeDef[5] = AS_MUNITF(1000.0f);//离内顶距离 fncNode.fNodeDef[6] = AS_MUNITF(1200.0f);//内侧方向距离 fncNode.fNodeDef[7] = AS_MUNITF(800.0f);//孔直径 fncNode.fNodeDef[8] = AS_MUNITF(2100.0f);//孔间距 fncNode.fNodeDef[9] = 2.0f;//3个 fncNode.fNodeDef[10] = AS_MUNITF(0.0f);//结束 _tcscpy(fncNode.szNodeDefSpec, _T("热力舱引出口")); } void CRLYCDlg::OnBnClickedOk() { UpdateData(TRUE); if (m_idxRoom < 0) { AfxMessageBox(_T("请选择一个舱室!")); return; } m_data.fNodeDef[0] = m_fYinChuKou_HengXiang_W; m_data.fNodeDef[1] = m_fYinChuKou_ZhongXiang_W; m_data.fNodeDef[2] = m_fYinChuKou_Thickness; m_data.fNodeDef[3] = m_fQiangTi_Size; m_data.fNodeDef[4] = m_fGuanLang_Thinckness; CBaseDialog::OnOK(); } void CRLYCDlg::OnBnClickedButton5() { CCCSYDlg dlg; dlg.SetBmpFileName(_T("rlyc.bmp")); dlg.DoModal(); } void CRLYCDlg::InitLstCtrl() { m_LstCtrl.InsertColumn(0, _T("离内顶距离"), LVCFMT_LEFT, 80); m_LstCtrl.InsertColumn(1, _T("侧方向距离"), LVCFMT_LEFT, 80); m_LstCtrl.InsertColumn(2, _T("孔直径"), LVCFMT_LEFT, 50); m_LstCtrl.InsertColumn(3, _T("孔间距"), LVCFMT_LEFT, 50); m_LstCtrl.InsertColumn(4, _T("数量"), LVCFMT_LEFT, 50); } void CRLYCDlg::RefreshLstCtrl() { // 从索引4开始,每6个为一节,视为一排 // 如果第一个元素为0则视为无,则认为从此不会有新排 m_LstCtrl.DeleteAllItems(); int nRow(0); for (int i = 4, j = 0; i < 64; i += 6, ++j) { if (m_data.fNodeDef[i] < AS_MUNITF(.1)) // 小于.1毫米,视为0 return; nRow = m_LstCtrl.InsertItem(0, TypeConvert::f2s(m_data.fNodeDef[i])); m_LstCtrl.SetItemText(nRow, 1, TypeConvert::f2s(m_data.fNodeDef[i + 1])); m_LstCtrl.SetItemText(nRow, 2, TypeConvert::f2s(m_data.fNodeDef[i + 2])); m_LstCtrl.SetItemText(nRow, 3, TypeConvert::f2s(m_data.fNodeDef[i + 3])); m_LstCtrl.SetItemText(nRow, 4, TypeConvert::i2s((int)m_data.fNodeDef[i + 4])); } } void CRLYCDlg::OnBnClickedButton1() { int count = m_LstCtrl.GetItemCount(); int idx = 4 + count * 6; if (idx + 6 > 63) return; CKKSJDlg dlg; if (dlg.DoModal() != IDOK) return; m_data.fNodeDef[idx] = AS_MUNITF(dlg.m_fNeiDing_Dis); m_data.fNodeDef[idx + 1] = AS_MUNITF(dlg.m_fChe_Dis); m_data.fNodeDef[idx + 2] = AS_MUNITF(dlg.m_fD); m_data.fNodeDef[idx + 3] = AS_MUNITF(dlg.m_fSpacing); m_data.fNodeDef[idx + 4] = dlg.m_fCount; m_data.fNodeDef[idx + 5] = .0f; RefreshLstCtrl(); } void CRLYCDlg::OnBnClickedButton4() { int nRow = m_LstCtrl.GetSelectionMark(); if (nRow != -1) m_LstCtrl.DeleteItem(nRow); }