#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("") , 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(); }