151 lines
3.4 KiB
C++
151 lines
3.4 KiB
C++
#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;
|
|
}
|