595 lines
16 KiB
C++
595 lines
16 KiB
C++
// DrawWaterTankDlg.cpp : implementation file
|
||
//
|
||
|
||
#include "stdafx.h"
|
||
#include "DrawWaterTankDlg.h"
|
||
#include "SelWaterTankDlg.h"
|
||
|
||
#include <dbrect.h>
|
||
#include <dbWaterTank.h>
|
||
#include <tapi.h>
|
||
|
||
#ifdef _DEBUG
|
||
#define new DEBUG_NEW
|
||
#undef THIS_FILE
|
||
static char THIS_FILE[] = __FILE__;
|
||
#endif
|
||
|
||
//extern TARCH_IMPEXP int DragMovePickSet(PickSet &ss, const TCHAR *pszPrompt, const XPoint &ptBase, XPoint &ptFinal);
|
||
//extern GEOAPI int DragPickSet1(PickSet &ss, XPoint &ptBase);
|
||
|
||
|
||
|
||
/////////////////////////////////////////////////////////////////////////////
|
||
// CDrawWaterTankDlg dialog
|
||
|
||
void DrawDashLine(XPoint pt1, XPoint pt2, double nScale)
|
||
{
|
||
XLine line5(pt1, pt2, 1);
|
||
line5.Make();
|
||
Entity entLast;
|
||
entLast.GetLast();
|
||
AcDbObjectId eId;
|
||
AcDbEntity *pEnt = NULL;
|
||
acdbGetObjectId(eId, entLast);
|
||
acdbOpenObject(pEnt, eId, AcDb::kForWrite);
|
||
if(!pEnt)
|
||
return;
|
||
pEnt->setLinetype(_T("DASH"));
|
||
pEnt->setLinetypeScale(nScale);
|
||
pEnt->close();
|
||
|
||
}
|
||
|
||
|
||
//***************************************************************************************************
|
||
// 编辑水箱
|
||
//***************************************************************************************************
|
||
int EditWaterTank(AcDbObjectId id)
|
||
{
|
||
if(!id)
|
||
return RTERROR;
|
||
int iLength(0), iWidth(0), iHeight(0);
|
||
CTemporaryResourceOverride vTemp;
|
||
CDrawWaterTankDlg dlg;
|
||
|
||
OPENOBJ_BEGIN(id, AcDb::kForRead, TDbWaterTank, pEquip);
|
||
if(pEquip){
|
||
dlg.m_nHeight = pEquip->GetHeight();
|
||
dlg.m_nLength = pEquip->GetLength();
|
||
dlg.m_nWidth = pEquip->GetWidth();
|
||
dlg.m_bNeedHole = pEquip->IsNeedHole();
|
||
dlg.m_bNeedSleeper = pEquip->IsNeedSleeper();
|
||
dlg.m_iNum = pEquip->GetSleeperNum();
|
||
dlg.m_nHoleWidth = pEquip->GetHoleWidth();
|
||
dlg.m_nLowLine = pEquip->GetLowLine();
|
||
dlg.m_nHighLine = pEquip->GetHighLine();
|
||
dlg.m_iSleepPos = pEquip->GetSleeperPos();
|
||
dlg.m_iShape = pEquip->GetShape();
|
||
dlg.m_iType = pEquip->GetShowType();
|
||
dlg.m_dSleeperHeight = pEquip->GetSleeperWidth(); //枕木高
|
||
dlg.m_nInEle = pEquip->GetWaterInEle();
|
||
dlg.m_nOutEle = pEquip->GetRushEle();
|
||
dlg.m_nHoleType = pEquip->HoleIsRect();
|
||
dlg.m_dSleeperWidth = pEquip->GetSpare(); //枕木宽 modified by cet 2009.11.11
|
||
dlg.m_dSleeperLen = pEquip->GetSleeperLen(); // 枕木长 cet 2011.4.22 add
|
||
dlg.m_dTankElev = pEquip->GetElev();// zxl 2012.12.03 add
|
||
}
|
||
OPENOBJ_END();
|
||
if(dlg.DoModal() != IDOK)
|
||
return 1;
|
||
OPENOBJ_BEGIN(id, AcDb::kForWrite, TDbWaterTank, pEquip);
|
||
if(pEquip){
|
||
pEquip->SetHeight(dlg.m_nHeight);
|
||
pEquip->SetLength(dlg.m_nLength);
|
||
pEquip->SetWidth(dlg.m_nWidth);
|
||
pEquip->SetNeedHole(dlg.m_bNeedHole);
|
||
pEquip->SetNeedSleeper(dlg.m_bNeedSleeper);
|
||
pEquip->SetSleeperNum(dlg.m_iNum);
|
||
pEquip->SetHoleWidth(dlg.m_nHoleWidth);
|
||
pEquip->SetLowLine(dlg.m_nLowLine);
|
||
pEquip->SetHighLine(dlg.m_nHighLine);
|
||
pEquip->SetSleeperPos(dlg.m_iSleepPos);
|
||
pEquip->SetShape(dlg.m_iShape);
|
||
pEquip->SetShowType(dlg.m_iType);
|
||
pEquip->SetSleeperWidth(dlg.m_dSleeperHeight); //枕木高
|
||
pEquip->SetWaterInEle(dlg.m_nInEle);
|
||
pEquip->SetRushEle(dlg.m_nOutEle);
|
||
pEquip->SetHoleRect(dlg.m_nHoleType);
|
||
pEquip->SetSpare(dlg.m_dSleeperWidth); //枕木宽 modified by cet 2009.11.11
|
||
pEquip->SetSleeperLen(dlg.m_dSleeperLen); // 枕木长 cet 2011.4.22 add
|
||
pEquip->SetElev(dlg.m_dTankElev);// zxl 2012.12.03 add
|
||
|
||
//调整人孔位置
|
||
TDbRect rect1;
|
||
XPoint ptIns;
|
||
ptIns = pEquip->GetLocation();
|
||
double nLength = dlg.m_nLength * 1000;
|
||
double nWidth = dlg.m_nWidth * 1000;
|
||
double nHoleWidth = dlg.m_nHoleWidth * 1000;
|
||
rect1.SetSizeX(nLength);
|
||
rect1.SetSizeY(nWidth);
|
||
rect1.SetCenter(ptIns);
|
||
rect1.SetRotation(pEquip->GetRotation()); // cet 2011.9.15 add
|
||
if(dlg.m_iShape == 1)
|
||
{
|
||
XPoint ptHole;
|
||
XPoint ptHoleBefore = pEquip->GetHoleInsert();
|
||
double dMin = ptHoleBefore.Distance2d(rect1.GetUpLeft());
|
||
ptHole = rect1.GetUpLeft();
|
||
ptHole = Wcs2Ucs(ptHole); // cet 2011.9.15
|
||
ads_polar(ptHole, 0, nHoleWidth/2, ptHole);
|
||
ads_polar(ptHole, PI/2, -nHoleWidth/2, ptHole);
|
||
ptHole = Ucs2Wcs(ptHole); // cet 2011.9.15
|
||
|
||
if (ptHoleBefore.Distance2d(rect1.GetUpRight()) < dMin)
|
||
{
|
||
ptHole = rect1.GetUpRight();
|
||
ptHole = Wcs2Ucs(ptHole); // cet 2011.9.15
|
||
ads_polar(ptHole, 0, -nHoleWidth/2, ptHole);
|
||
ads_polar(ptHole, PI/2, -nHoleWidth/2, ptHole);
|
||
ptHole = Ucs2Wcs(ptHole); // cet 2011.9.15
|
||
dMin = ptHoleBefore.Distance2d(rect1.GetUpRight());
|
||
}
|
||
if (ptHoleBefore.Distance2d(rect1.GetLowLeft()) < dMin)
|
||
{
|
||
ptHole = rect1.GetLowLeft();
|
||
ptHole = Wcs2Ucs(ptHole); // cet 2011.9.15
|
||
ads_polar(ptHole, 0, nHoleWidth/2, ptHole);
|
||
ads_polar(ptHole, PI/2, nHoleWidth/2, ptHole);
|
||
ptHole = Ucs2Wcs(ptHole); // cet 2011.9.15
|
||
dMin = ptHoleBefore.Distance2d(rect1.GetLowLeft());
|
||
}
|
||
if (ptHoleBefore.Distance2d(rect1.GetLowRight()) < dMin)
|
||
{
|
||
ptHole = rect1.GetLowRight();
|
||
ptHole = Wcs2Ucs(ptHole); // cet 2011.9.15
|
||
ads_polar(ptHole, 0, -nHoleWidth/2, ptHole);
|
||
ads_polar(ptHole, PI/2, nHoleWidth/2, ptHole);
|
||
ptHole = Ucs2Wcs(ptHole); // cet 2011.9.15
|
||
dMin = ptHoleBefore.Distance2d(rect1.GetLowRight());
|
||
}
|
||
pEquip->SetHoleInsert(ptHole);
|
||
}
|
||
}
|
||
OPENOBJ_END();
|
||
return 1;
|
||
}
|
||
|
||
void DrawWaterTank()
|
||
{
|
||
CTemporaryResourceOverride over;
|
||
CDrawWaterTankDlg dlg;
|
||
if(dlg.DoModal() != IDOK)
|
||
return;
|
||
XPoint ptIns, ptHole;
|
||
if(ads_getpoint(NULL, _T("\n请点取水箱插入点<退出>:"), ptIns) != RTNORM)
|
||
return;
|
||
ptIns = Ucs2Wcs(ptIns);
|
||
InitLayer(LAY_TWT_WATERTANK);
|
||
//XPushVarStr clayer(_T("CLAYER"), LAY_TWT_WATERTANK); cet 2011.10.11 del 导致产生"CLAYER"图层
|
||
|
||
double nLength = dlg.m_nLength * 1000;
|
||
double nWidth = dlg.m_nWidth * 1000;
|
||
double nHoleWidth = dlg.m_nHoleWidth * 1000;
|
||
TDbRect rect1;
|
||
rect1.SetSizeX(nLength);
|
||
rect1.SetSizeY(nWidth);
|
||
rect1.SetCenter(ptIns);
|
||
rect1.SetRotation(Ucs2Wcs(0.0)); // cet 2011.9.15 add
|
||
ptHole = rect1.GetUpLeft();
|
||
|
||
ptHole = Wcs2Ucs(ptHole); // cet 2011.9.15 add
|
||
ads_polar(ptHole, 0, nHoleWidth/2, ptHole);
|
||
ads_polar(ptHole, PI/2, -nHoleWidth/2, ptHole);
|
||
ptHole = Ucs2Wcs(ptHole); // cet 2011.9.15 add
|
||
|
||
CString csDwb = g_csDwbPath + _T("TwtSys");
|
||
XString xsTmp;
|
||
if(LoadDwbBlock(csDwb, _T("00000415"), xsTmp) != RTNORM) //锅盖
|
||
return;
|
||
|
||
TDbWaterTank *pTank = new TDbWaterTank;
|
||
pTank->SetLocation(ptIns);
|
||
if(dlg.m_iShape != 1)
|
||
pTank->SetHoleInsert(ptIns);
|
||
else
|
||
pTank->SetHoleInsert(ptHole);
|
||
pTank->SetDashLayer(InitDashLayer(_T("TWT_DASH")));
|
||
pTank->SetHeight(dlg.m_nHeight);
|
||
pTank->SetWidth(dlg.m_nWidth);
|
||
pTank->SetLength(dlg.m_nLength);
|
||
pTank->SetNeedHole(dlg.m_bNeedHole);
|
||
pTank->SetNeedSleeper(dlg.m_bNeedSleeper);
|
||
pTank->SetSleeperPos(dlg.m_iSleepPos);
|
||
pTank->SetLowLine(dlg.m_nLowLine);
|
||
pTank->SetHighLine(dlg.m_nHighLine);
|
||
pTank->SetSleeperNum(dlg.m_iNum);
|
||
pTank->SetShowType(dlg.m_iType);
|
||
pTank->SetElev(dlg.m_dTankElev);// zxl 2012.12.03 add
|
||
pTank->SetBlock3d(GetBlockIdFromString(xsTmp));
|
||
pTank->SetShape(dlg.m_iShape);
|
||
pTank->SetSleeperWidth(dlg.m_dSleeperHeight); //枕木高
|
||
pTank->SetSpare(dlg.m_dSleeperWidth); //枕木宽 modified by cet 2009.11.11
|
||
pTank->SetSleeperLen(dlg.m_dSleeperLen); // 枕木长 cet 2011.4.22 addd
|
||
pTank->SetHoleWidth(dlg.m_nHoleWidth);
|
||
pTank->SetHoleRect(dlg.m_nHoleType);
|
||
pTank->SetRotation(Ucs2Wcs(0.0)); // cet 2011.8.29 add
|
||
pTank->setLayer(LAY_TWT_WATERTANK); // cet 2011.10.11 add
|
||
AcDbObjectId id = AddToCurrentSpace(pTank, Adesk::kTrue);
|
||
|
||
}
|
||
|
||
double CDrawWaterTankDlg::m_nHeight = 2;
|
||
double CDrawWaterTankDlg::m_nLength = 3;
|
||
double CDrawWaterTankDlg::m_nWidth = 2;
|
||
int CDrawWaterTankDlg::m_iType = 0;
|
||
int CDrawWaterTankDlg::m_iShape = 1; // cet 2011.9.14 add
|
||
double CDrawWaterTankDlg::m_dTankElev = 0.0;
|
||
|
||
CString CDrawWaterTankDlg::m_csCubage = _T("0.5");
|
||
|
||
CDrawWaterTankDlg::CDrawWaterTankDlg(CWnd* pParent /*=NULL*/)
|
||
: CDialog(CDrawWaterTankDlg::IDD, pParent)
|
||
{
|
||
//{{AFX_DATA_INIT(CDrawWaterTankDlg)
|
||
m_bNeedHole = TRUE;
|
||
m_bNeedSleeper = TRUE;
|
||
m_iNum = 3;
|
||
m_iSleepPos = 0;
|
||
m_nHighLine = 1.8;
|
||
m_nHoleWidth = 0.5;
|
||
m_nLowLine = 0;
|
||
m_nInEle = 0.0;
|
||
m_nOutEle = 0.0;
|
||
m_nHoleType = 0;
|
||
m_dSleeperHeight = 0.5;
|
||
m_dSleeperWidth = 0.2;
|
||
m_dSleeperLen = 0.0;
|
||
//}}AFX_DATA_INIT
|
||
}
|
||
|
||
|
||
void CDrawWaterTankDlg::DoDataExchange(CDataExchange* pDX)
|
||
{
|
||
CDialog::DoDataExchange(pDX);
|
||
//{{AFX_DATA_MAP(CDrawWaterTankDlg)
|
||
DDX_Control(pDX, IDC_SPIN_NUM, m_spinNum);
|
||
DDX_Check(pDX, IDC_CHECK_NEED_HOLE, m_bNeedHole);
|
||
DDX_Check(pDX, IDC_CHECK_NEED_SLEEPER, m_bNeedSleeper);
|
||
DDX_Text(pDX, IDC_EDIT_NUM, m_iNum);
|
||
DDX_CBIndex(pDX, IDC_COMBO_POS2, m_iSleepPos);
|
||
DDX_Text(pDX, IDC_EDIT_HIGH_LINE, m_nHighLine);
|
||
DDX_Text(pDX, IDC_EDIT_HOLE_WIDTH, m_nHoleWidth);
|
||
DDX_Text(pDX, IDC_EDIT_LOW_LINE, m_nLowLine);
|
||
DDX_Text(pDX, IDC_EDIT_IN_ELE, m_nInEle);
|
||
DDX_Text(pDX, IDC_EDIT_OUT_ELE, m_nOutEle);
|
||
DDX_Radio(pDX, IDC_RADIORECTAN, m_nHoleType);
|
||
DDX_Text(pDX, IDC_EDIT_SLEEPER_HEIGHT, m_dSleeperHeight);
|
||
DDX_Text(pDX, IDC_EDIT_SLEEPER_WIDTH, m_dSleeperWidth);
|
||
DDX_Text(pDX, IDC_EDIT_SLEEPER_LEN, m_dSleeperLen);
|
||
DDX_Radio(pDX, IDC_RADIO_SHAPE1, m_iShape);
|
||
DDX_Radio(pDX, IDC_RADIO_TYPE1, m_iType);
|
||
DDX_Text(pDX, IDC_EDIT_CUBAGE, m_csCubage);
|
||
DDX_Text(pDX, IDC_EDIT_ELEV, m_dTankElev);
|
||
//}}AFX_DATA_MAP
|
||
}
|
||
|
||
|
||
BEGIN_MESSAGE_MAP(CDrawWaterTankDlg, CDialog)
|
||
//{{AFX_MSG_MAP(CDrawWaterTankDlg)
|
||
ON_BN_CLICKED(IDC_RADIO_SHAPE1, OnRadioShape1)
|
||
ON_BN_CLICKED(IDC_RADIO_SHAPE2, OnRadioShape2)
|
||
ON_BN_CLICKED(IDC_BUTTON_STANDARD, OnButtonStandard)
|
||
ON_BN_CLICKED(IDC_CHECK_NEED_HOLE, OnCheckNeedHole)
|
||
ON_BN_CLICKED(IDC_CHECK_NEED_SLEEPER, OnCheckNeedSleeper)
|
||
ON_BN_CLICKED(IDC_RADIO_SHAPE3, OnRadioShape3)
|
||
ON_EN_CHANGE(IDC_EDIT_LENGTH, OnChangeEditLength)
|
||
ON_EN_CHANGE(IDC_EDIT_WIDTH, OnChangeEditWidth)
|
||
ON_CBN_SELCHANGE(IDC_COMBO_POS2, OnSelchangeComboPos2)
|
||
ON_EN_CHANGE(IDC_EDIT_HEIGHT, OnChangeEditHeight)
|
||
//}}AFX_MSG_MAP
|
||
END_MESSAGE_MAP()
|
||
|
||
/////////////////////////////////////////////////////////////////////////////
|
||
// CDrawWaterTankDlg message handlers
|
||
|
||
|
||
BOOL CDrawWaterTankDlg::OnInitDialog()
|
||
{
|
||
CDialog::OnInitDialog();
|
||
m_spinNum.SetRange(1, 10);
|
||
ResetCheck();
|
||
|
||
CWnd *pWnd1 = GetDlgItem(IDC_CHECK_NEED_SLEEPER);
|
||
if(m_iShape == 0 || m_iShape == 2)
|
||
pWnd1->EnableWindow(FALSE);
|
||
else
|
||
pWnd1->EnableWindow(TRUE);
|
||
ResetEdit();
|
||
|
||
// cet 2011.6.7 add
|
||
UpdateTankData();
|
||
|
||
// cet 2011.4.22 add 枕木长未被赋值时
|
||
if (m_iSleepPos == 0 && fabs(m_dSleeperLen) < g_fZero)
|
||
{
|
||
OnChangeEditLength();
|
||
}
|
||
else if (m_iSleepPos == 1 && fabs(m_dSleeperLen) < g_fZero)
|
||
{
|
||
OnChangeEditWidth();
|
||
}
|
||
|
||
return TRUE; // return TRUE unless you set the focus to a control
|
||
// EXCEPTION: OCX Property Pages should return FALSE
|
||
}
|
||
|
||
// 更新水箱数据 zxxl 2012.03.28 add
|
||
void CDrawWaterTankDlg::UpdateTankData()
|
||
{
|
||
CWnd *pWnd2 = GetDlgItem(IDC_EDIT_HEIGHT);
|
||
CWnd *pWnd3 = GetDlgItem(IDC_EDIT_LENGTH);
|
||
CWnd *pWnd4 = GetDlgItem(IDC_EDIT_WIDTH);
|
||
CString sTemp;
|
||
if (pWnd2 != NULL)
|
||
{
|
||
sTemp.Format(_T("%.3f"), m_nHeight);
|
||
sTemp.TrimRight(_T("0"));
|
||
sTemp.TrimRight(_T("."));
|
||
pWnd2->SetWindowText(sTemp);
|
||
}
|
||
|
||
if (pWnd3 != NULL)
|
||
{
|
||
sTemp.Format(_T("%.3f"), m_nLength);
|
||
sTemp.TrimRight(_T("0"));
|
||
sTemp.TrimRight(_T("."));
|
||
pWnd3->SetWindowText(sTemp);
|
||
}
|
||
|
||
if (pWnd4 != NULL)
|
||
{
|
||
sTemp.Format(_T("%.3f"), m_nWidth);
|
||
sTemp.TrimRight(_T("0"));
|
||
sTemp.TrimRight(_T("."));
|
||
pWnd4->SetWindowText(sTemp);
|
||
}
|
||
}
|
||
|
||
void CDrawWaterTankDlg::OnRadioShape1()
|
||
{
|
||
ResetEdit();
|
||
}
|
||
|
||
void CDrawWaterTankDlg::OnRadioShape2()
|
||
{
|
||
ResetEdit();
|
||
}
|
||
|
||
void CDrawWaterTankDlg::OnRadioShape3()
|
||
{
|
||
ResetEdit();
|
||
}
|
||
|
||
void CDrawWaterTankDlg::OnButtonStandard()
|
||
{
|
||
CTemporaryResourceOverride vTemp;
|
||
CSelWaterTankDlg dlg;
|
||
|
||
// zxl 2012.03.28 add 水箱类型联动
|
||
if (m_iShape == 0 || m_iShape == 2)
|
||
{
|
||
dlg.m_iShape = 0;
|
||
}
|
||
else
|
||
{
|
||
dlg.m_iShape = 1;
|
||
}
|
||
|
||
if(dlg.DoModal() != IDOK)
|
||
return;
|
||
m_csCubage = dlg.m_csCubage;
|
||
if (!((m_iShape == 0 || m_iShape == 2) && dlg.m_iShape == 0))
|
||
{
|
||
m_iShape = dlg.m_iShape;
|
||
}
|
||
if(m_iShape == 0 || m_iShape == 2){
|
||
m_nLength = (double)dlg.m_iRadius/1000;
|
||
m_nHeight = (double)dlg.m_iHeight/1000;
|
||
m_bNeedHole = FALSE;
|
||
}
|
||
else{
|
||
m_nLength = (double)dlg.m_iLength/1000;
|
||
m_nWidth = (double)dlg.m_iWidth/1000;
|
||
m_nHeight = (double)dlg.m_iHeight/1000;
|
||
}
|
||
UpdateData(FALSE);
|
||
|
||
// zxl 2012.03.28 add 显示水箱数据
|
||
UpdateTankData();
|
||
ResetEdit();
|
||
}
|
||
|
||
void CDrawWaterTankDlg::ResetEdit()
|
||
{
|
||
UpdateData(TRUE);
|
||
CWnd *pWnd1 = GetDlgItem(IDC_CHECK_NEED_SLEEPER);
|
||
CWnd *pWnd2 = GetDlgItem(IDC_STATIC_TEXT);
|
||
CWnd *pWnd3 = GetDlgItem(IDC_STATIC_TEXT2);
|
||
// CWnd *pWnd4 = GetDlgItem(IDC_STATIC_TEXT3);
|
||
// if(m_iShape == 2)
|
||
// pWnd4->SetWindowText("水箱长(m):");
|
||
// else
|
||
// pWnd4->SetWindowText("水箱高(m):");
|
||
|
||
if(m_iShape == 0 || m_iShape == 2){
|
||
pWnd1->EnableWindow(FALSE);
|
||
pWnd2->SetWindowText(_T("水箱直径:"));
|
||
pWnd3->SetWindowText(_T("支座高度:"));
|
||
if(m_nWidth > 1)
|
||
m_nWidth = 0.5;
|
||
m_bNeedSleeper = FALSE;
|
||
}
|
||
else{
|
||
pWnd1->EnableWindow(TRUE);
|
||
pWnd2->SetWindowText(_T("水箱长(m):"));
|
||
pWnd3->SetWindowText(_T("水箱宽(m):"));
|
||
if(m_nWidth < 1)
|
||
m_nWidth = 2;
|
||
m_bNeedSleeper = TRUE;
|
||
}
|
||
UpdateData(FALSE);
|
||
ResetCheck();
|
||
}
|
||
|
||
void CDrawWaterTankDlg::OnCheckNeedHole()
|
||
{
|
||
ResetCheck();
|
||
}
|
||
|
||
void CDrawWaterTankDlg::OnCheckNeedSleeper()
|
||
{
|
||
ResetCheck();
|
||
}
|
||
|
||
void CDrawWaterTankDlg::ResetCheck()
|
||
{
|
||
UpdateData(TRUE);
|
||
CWnd *pWnd1 = GetDlgItem(IDC_EDIT_HOLE_WIDTH);
|
||
// CWnd *pWnd2 = GetDlgItem(IDC_COMBO_POS);
|
||
CWnd *pWnd3 = GetDlgItem(IDC_EDIT_NUM);
|
||
CWnd *pWnd4 = GetDlgItem(IDC_SPIN_NUM);
|
||
CWnd *pWnd5 = GetDlgItem(IDC_COMBO_POS2);
|
||
CWnd *pWnd6 = GetDlgItem(IDC_EDIT_SLEEPER_HEIGHT);
|
||
CWnd *pWnd7 = GetDlgItem(IDC_EDIT_SLEEPER_WIDTH);
|
||
CWnd *pWnd8 = GetDlgItem(IDC_EDIT_SLEEPER_LEN); // cet 2011.4.22 add 枕木长
|
||
if(!m_bNeedHole){
|
||
pWnd1->EnableWindow(FALSE);
|
||
// pWnd2->EnableWindow(FALSE);
|
||
}
|
||
else{
|
||
pWnd1->EnableWindow(TRUE);
|
||
// pWnd2->EnableWindow(TRUE);
|
||
}
|
||
|
||
if(m_bNeedSleeper){
|
||
pWnd3->EnableWindow(TRUE);
|
||
pWnd4->EnableWindow(TRUE);
|
||
pWnd5->EnableWindow(TRUE);
|
||
pWnd6->EnableWindow(TRUE);
|
||
pWnd7->EnableWindow(TRUE);
|
||
pWnd8->EnableWindow(TRUE); // cet 2011.4.22 add
|
||
}
|
||
else{
|
||
pWnd3->EnableWindow(FALSE);
|
||
pWnd4->EnableWindow(FALSE);
|
||
pWnd5->EnableWindow(FALSE);
|
||
pWnd6->EnableWindow(FALSE);
|
||
pWnd7->EnableWindow(FALSE);
|
||
pWnd8->EnableWindow(FALSE); // cet 2011.4.22 add
|
||
}
|
||
}
|
||
|
||
|
||
//added by cet 2009.11.11
|
||
void CDrawWaterTankDlg::OnOK()
|
||
{
|
||
UpdateData();
|
||
|
||
// cet 2011.6.7 add
|
||
CWnd *pWnd2 = GetDlgItem(IDC_EDIT_HEIGHT);
|
||
CWnd *pWnd3 = GetDlgItem(IDC_EDIT_LENGTH);
|
||
CWnd *pWnd4 = GetDlgItem(IDC_EDIT_WIDTH);
|
||
CString sTemp;
|
||
if (pWnd2 != NULL)
|
||
{
|
||
pWnd2->GetWindowText(sTemp);
|
||
m_nHeight = _tstof(sTemp);
|
||
}
|
||
|
||
if (pWnd3 != NULL)
|
||
{
|
||
pWnd3->GetWindowText(sTemp);
|
||
m_nLength = _tstof(sTemp);
|
||
}
|
||
|
||
if (pWnd4 != NULL)
|
||
{
|
||
pWnd4->GetWindowText(sTemp);
|
||
m_nWidth = _tstof(sTemp);
|
||
}
|
||
|
||
if ((m_nWidth - (m_iNum - 1) * m_dSleeperWidth) < 0)
|
||
{
|
||
MessageBox(_T("枕木数宽度和应小于水箱宽度!"));
|
||
return;
|
||
}
|
||
CDialog::OnOK();
|
||
}
|
||
|
||
void CDrawWaterTankDlg::OnChangeEditLength()
|
||
{
|
||
UpdateData(TRUE);
|
||
// cet 2011.6.7 add
|
||
CWnd *pWnd = GetDlgItem(IDC_EDIT_LENGTH);
|
||
if (pWnd != NULL)
|
||
{
|
||
CString sTemp;
|
||
pWnd->GetWindowText(sTemp);
|
||
m_nLength = _tstof(sTemp);
|
||
}
|
||
|
||
if(m_iSleepPos == 0) // 枕木位置:水平
|
||
{
|
||
m_dSleeperLen = m_nLength + 0.1;
|
||
}
|
||
UpdateData(FALSE);
|
||
}
|
||
|
||
void CDrawWaterTankDlg::OnChangeEditWidth()
|
||
{
|
||
UpdateData(TRUE);
|
||
// cet 2011.6.7 add
|
||
CWnd *pWnd = GetDlgItem(IDC_EDIT_WIDTH);
|
||
if (pWnd != NULL)
|
||
{
|
||
CString sTemp;
|
||
pWnd->GetWindowText(sTemp);
|
||
m_nWidth = _tstof(sTemp);
|
||
}
|
||
|
||
if(m_iSleepPos == 1) // 枕木位置:垂直
|
||
{
|
||
m_dSleeperLen = m_nWidth + 0.1;
|
||
}
|
||
UpdateData(FALSE);
|
||
}
|
||
|
||
void CDrawWaterTankDlg::OnSelchangeComboPos2()
|
||
{
|
||
UpdateData(TRUE);
|
||
if (m_iSleepPos == 0)
|
||
{
|
||
m_dSleeperLen = m_nLength + 0.1;
|
||
}
|
||
else if (m_iSleepPos == 1)
|
||
{
|
||
m_dSleeperLen = m_nWidth + 0.1;
|
||
}
|
||
UpdateData(FALSE);
|
||
}
|
||
|
||
void CDrawWaterTankDlg::OnChangeEditHeight()
|
||
{
|
||
UpdateData(TRUE);
|
||
CWnd *pWnd = GetDlgItem(IDC_EDIT_HEIGHT);
|
||
if (pWnd != NULL)
|
||
{
|
||
CString sTemp;
|
||
pWnd->GetWindowText(sTemp);
|
||
m_nHeight = _tstof(sTemp);
|
||
}
|
||
UpdateData(FALSE);
|
||
}
|