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

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