#include "stdafx.h" #include "GLKKDlg.h" #include "AecDbEarthWorm.h" #include "KTCADUtilityEx.h" #include "UITools.h" IMPLEMENT_DYNAMIC(CGLKKDlg, CBaseDialog) CGLKKDlg::CGLKKDlg(CWnd* pParent /*=NULL*/) : CBaseDialog(CGLKKDlg::IDD, _T("GLKK"), IDC_STATIC_FRM, pParent) , m_nFlag(0) , m_fL(1.0f) , m_fW(1.0f) , m_fP(1.0f) , m_nShape(FALSE) { } CGLKKDlg::~CGLKKDlg() { } void CGLKKDlg::DoDataExchange(CDataExchange* pDX) { CBaseDialog::DoDataExchange(pDX); DDX_Radio(pDX, IDC_RADIO1, m_nFlag); DDX_Text(pDX, IDC_EDIT1, m_fL); DDX_Text(pDX, IDC_EDIT2, m_fW); DDX_Text(pDX, IDC_EDIT3, m_fP); DDX_Control(pDX, IDC_EDIT2, m_wndEditW); DDX_Control(pDX, IDC_STATIC_L, m_wndSL); DDX_Control(pDX, IDC_STATIC_W, m_wndSW); DDX_Control(pDX, IDC_STATIC_P, m_wndSP); DDX_Radio(pDX, IDC_RADIO5, m_nShape); } BEGIN_MESSAGE_MAP(CGLKKDlg, CBaseDialog) ON_BN_CLICKED(IDOK, &CGLKKDlg::OnBnClickedOk) ON_BN_CLICKED(IDC_RADIO5, &CGLKKDlg::OnBnClickedRadio5) ON_BN_CLICKED(IDC_RADIO6, &CGLKKDlg::OnBnClickedRadio6) ON_BN_CLICKED(IDC_RADIO1, &CGLKKDlg::OnBnClickedRadio1) ON_BN_CLICKED(IDC_RADIO2, &CGLKKDlg::OnBnClickedRadio1) ON_BN_CLICKED(IDC_RADIO3, &CGLKKDlg::OnBnClickedRadio1) ON_BN_CLICKED(IDC_RADIO4, &CGLKKDlg::OnBnClickedRadio1) END_MESSAGE_MAP() BOOL CGLKKDlg::OnInitDialog() { CBaseDialog::OnInitDialog(); m_fL = m_data.fNodeDef[0]; m_fW = m_data.fNodeDef[1]; m_fP = m_data.fNodeDef[2]; m_nFlag = (int)m_data.fNodeDef[3]; return TRUE; } void CGLKKDlg::SetDefaultFnctNode(EWFnctNode &fncNode) { memset(&fncNode, 0, sizeof(EWFnctNode)); fncNode.dDistFromPre = AS_MUNIT(5000.0);//5米位置 fncNode.eFnType = kUserDoghouse; _tcscpy(fncNode.szNodeSpec, _T("任意开口")); fncNode.nRoomIndex = 0;//舱0 fncNode.nFlag = 0;//顶部开口 fncNode.fNodeDef[0] = AS_MUNITF(3000.0f);//沿管廊方向开口内长/直径 fncNode.fNodeDef[1] = AS_MUNITF(3000.0f);//管廊断面方向宽 fncNode.fNodeDef[2] = AS_MUNITF(1000.0f);//左室定位尺寸 fncNode.fNodeDef[3] = 1.0f;//开方口 1.0f 开圆口 } void CGLKKDlg::OnBnClickedOk() { UpdateData(); if (GetIdxOfRoom() == -1) { AfxMessageBox(_T("请选择舱室开口!")); return; } m_data.nRoomIndex = GetIdxOfRoom(); m_data.nFlag = m_nFlag; m_data.fNodeDef[0] = m_fL; m_data.fNodeDef[1] = m_fW; m_data.fNodeDef[2] = m_fP; m_data.fNodeDef[3] = m_nShape; CBaseDialog::OnOK(); } void CGLKKDlg::OnBnClickedRadio5() { UpdateData(); if (m_nShape == 0) { m_wndSW.EnableWindow(TRUE); m_wndEditW.EnableWindow(TRUE); m_wndSL.SetWindowText(_T("管廊纵向长:")); } else { m_wndSW.EnableWindow(FALSE); m_wndEditW.EnableWindow(FALSE); m_wndSL.SetWindowText(_T("管廊开口直径:")); } } void CGLKKDlg::OnBnClickedRadio6() { UpdateData(); if (m_nShape == 0) { m_wndSW.EnableWindow(TRUE); m_wndEditW.EnableWindow(TRUE); m_wndSL.SetWindowText(_T("管廊纵向长:")); } else { m_wndSW.EnableWindow(FALSE); m_wndEditW.EnableWindow(FALSE); m_wndSL.SetWindowText(_T("管廊开口直径:")); } } void CGLKKDlg::OnBnClickedRadio1() { UpdateData(TRUE); CString text(_T("")); switch (m_nFlag) { case 0: // 顶 text = _T("距离室内左侧尺寸"); break; case 1: // 底 text = _T("距离室内左侧尺寸"); break; case 2: // 左 text = _T("距离室内底部尺寸"); break; case 3: // 右 text = _T("距离室内底部尺寸"); break; default: break; } m_wndSP.SetWindowText(text); return; }