131 lines
2.5 KiB
C++
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();
|
|
}
|