104 lines
2.2 KiB
C++
104 lines
2.2 KiB
C++
#include "stdafx.h"
|
|
#include "BZJJDlg.h"
|
|
#include "AecDbEwEquipment.h"
|
|
#include "AcGiViewDraw.h"
|
|
#include "UIHistory.h"
|
|
#include "coretools.h"
|
|
|
|
IMPLEMENT_DYNAMIC(CBZJJDlg, CDialog)
|
|
|
|
CBZJJDlg::CBZJJDlg(CWnd* pParent /*=NULL*/)
|
|
: CDialog(IDD_BZJJ_DLG, pParent)
|
|
, m_pEqu(NULL)
|
|
, m_dFirst(0)
|
|
, m_dSpace(1500)
|
|
, m_dSpaceWall(500)
|
|
, m_dLength(0)
|
|
, m_dWidth(0)
|
|
, m_sFactory(_T(""))
|
|
{
|
|
GET_CACHE(CBZJJDlg, %s%d%d%d, &m_sFactory, &m_dFirst, &m_dSpace, &m_dSpaceWall);
|
|
}
|
|
|
|
CBZJJDlg::~CBZJJDlg()
|
|
{
|
|
DELETE_PTR(m_pEqu);
|
|
}
|
|
|
|
void CBZJJDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
DDX_Text(pDX, IDC_EDIT20, m_sFactory);
|
|
DDX_Text(pDX, IDC_EDIT1, m_dFirst);
|
|
DDX_Text(pDX, IDC_EDIT2, m_dSpace);
|
|
DDX_Text(pDX, IDC_EDIT3, m_dSpaceWall);
|
|
DDX_Text(pDX, IDC_EDIT4, m_dLength);
|
|
DDX_Text(pDX, IDC_EDIT5, m_dWidth);
|
|
}
|
|
|
|
BEGIN_MESSAGE_MAP(CBZJJDlg, CDialog)
|
|
ON_BN_CLICKED(IDC_BTN_SELE, &CBZJJDlg::OnBnClickedBtnSele)
|
|
ON_BN_CLICKED(IDOK, &CBZJJDlg::OnOk)
|
|
END_MESSAGE_MAP()
|
|
|
|
BOOL CBZJJDlg::OnInitDialog()
|
|
{
|
|
UpdateData(FALSE);
|
|
CDialog::OnInitDialog();
|
|
m_wndViewCtrl.SubclassDlgItem(IDC_PREVIEW_PIC, this);
|
|
return TRUE;
|
|
}
|
|
|
|
void CBZJJDlg::OnBnClickedBtnSele()
|
|
{
|
|
DELETE_PTR(m_pEqu);
|
|
m_pEqu = CoreTools::selectEquipment(_T("常规卫浴\\"), _T(""));
|
|
if (!m_pEqu) return;
|
|
|
|
AcGiViewDraw dc;
|
|
m_pEqu->Draw3d(dc);
|
|
AcDbExtents exts;
|
|
m_pEqu->getGeomExtents(exts);
|
|
m_wndViewCtrl.clearAll();
|
|
m_wndViewCtrl.init(true);
|
|
m_wndViewCtrl.SetOrbitFlag(OBF_PAN | OBF_ZOOM | OBF_COTE);
|
|
m_wndViewCtrl.InitFromCurrentView3D(exts, true);
|
|
|
|
m_wndViewCtrl.Add(m_pEqu);
|
|
|
|
m_wndViewCtrl.view()->invalidate();
|
|
m_wndViewCtrl.Invalidate();
|
|
m_wndViewCtrl.RedrawWindow();
|
|
|
|
m_dWidth = exts.maxPoint().x - exts.minPoint().x;
|
|
m_dLength = exts.maxPoint().y - exts.minPoint().y;
|
|
UpdateData(FALSE);
|
|
}
|
|
|
|
void CBZJJDlg::OnOk()
|
|
{
|
|
if (!UpdateData(TRUE)) return;
|
|
|
|
if (!m_pEqu)
|
|
{
|
|
AfxMessageBox(_T("请选择一个洁具!"));
|
|
return;
|
|
}
|
|
|
|
if (m_dSpace < m_dWidth)
|
|
{
|
|
AfxMessageBox(_T("洁具之间的距离不能小于洁具的宽度!"));
|
|
return;
|
|
}
|
|
|
|
SET_CACHE(CBZJJDlg, %s%d%d%d, m_sFactory, m_dFirst, m_dSpace, m_dSpaceWall);
|
|
OnOK();
|
|
}
|
|
|
|
AecDbEwEquipment* CBZJJDlg::getEquPtr()
|
|
{
|
|
if (m_pEqu)
|
|
return (AecDbEwEquipment*)m_pEqu->clone();
|
|
return NULL;
|
|
}
|