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

131 lines
2.5 KiB
C++

#include "stdafx.h"
#include "CSFCDlg.h"
IMPLEMENT_DYNAMIC(CCSFCDlg, CDialog)
static int g_idx = 1;
CCSFCDlg::CCSFCDlg(CWnd* pParent /*=NULL*/)
: CDialog(CCSFCDlg::IDD, pParent)
, m_dDistFr(2.0)
, m_nType(0)
, m_dW(2.0)
, m_dt(240)
, m_iNo(1)
, m_sRoomWH(_T(""))
{
m_bRemove = false;
m_ptOff.set(0,0);
}
CCSFCDlg::~CCSFCDlg()
{
}
void CCSFCDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX, IDC_EDIT1, m_dDistFr);
DDX_Radio(pDX, IDC_RADIO1, m_nType);
DDX_Text(pDX, IDC_EDIT4, m_dW);
DDX_Text(pDX, IDC_EDIT3, m_dt);
DDX_Text(pDX, IDC_EDIT5, m_iNo);
DDV_MinMaxInt(pDX, m_iNo, 1, 99999);
DDX_Control(pDX, IDC_STATIC_D, m_wndSplitTip);
DDX_Control(pDX, IDC_STATIC_D2, m_wndSlabWH);
DDX_Text(pDX, IDC_EDIT2, m_sRoomWH);
}
BEGIN_MESSAGE_MAP(CCSFCDlg, CDialog)
ON_BN_CLICKED(IDOK, &CCSFCDlg::OnBnClickedOk)
ON_BN_CLICKED(IDC_RADIO1, &CCSFCDlg::OnBnClickedRadio1)
ON_BN_CLICKED(IDC_RADIO2, &CCSFCDlg::OnBnClickedRadio2)
ON_BN_CLICKED(IDC_BUTTON1, &CCSFCDlg::OnBnClickedButton1)
END_MESSAGE_MAP()
void CCSFCDlg::SetRoomSize(double dW,double dH)
{
m_dRoomW = dW;
m_dRoomH = dH;
m_dW = dW;
m_sRoomWH.Format(_T("%.3fx%.3f"),dW,dH);
}
void CCSFCDlg::SetOffset(AcGePoint2d& ptOff)
{
m_ptOff = ptOff;
}
BOOL CCSFCDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_iNo = g_idx;
UpdateData(FALSE);
return TRUE;
}
int CCSFCDlg::GetScript(CString& sScript,int nRoomIndex)
{
//ROOMSLAB: 房间|位置方向|距离|子舱宽|板厚度|偏移x|偏移y|编号
sScript.Format(_T("<ROOMSLAB:%d|%d|%.3f|%.3f|%.3f|%.3f|%.3f|%d>")
, nRoomIndex , m_nType , m_dDistFr , m_dW , m_dt,m_ptOff.x,m_ptOff.y,m_iNo);
return m_iNo;
}
void CCSFCDlg::OnBnClickedOk()
{
UpdateData();
if (m_dW - m_dRoomW > 1.e-6)
{
AfxMessageBox(_T("分舱的宽度不能大于主舱宽!"));
return;
}
if (m_dt < 30.0)
{
AfxMessageBox(_T("分舱的隔板厚度尺寸太小!至少大于30毫米!"));
return;
}
++g_idx;
OnOK();
}
void CCSFCDlg::OnBnClickedRadio1()
{
UpdateData();
if (m_nType == 0)
{
m_wndSplitTip.SetWindowText(_T("隔板距底部距离 D:"));
m_wndSlabWH.SetWindowText(_T("隔板板宽 W:"));
m_dW = m_dRoomW;
UpdateData(FALSE);
}
else
{
m_wndSplitTip.SetWindowText(_T("隔板距左侧距离 D:"));
m_wndSlabWH.SetWindowText(_T("隔板板高 W:"));
m_dW = m_dRoomH;
UpdateData(FALSE);
}
}
void CCSFCDlg::OnBnClickedRadio2()
{
OnBnClickedRadio1();
}
void CCSFCDlg::OnBnClickedButton1()
{
m_bRemove = true;
OnOK();
}