611 lines
17 KiB
C++
611 lines
17 KiB
C++
// MultiStairDlg.cpp : implementation file
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "MultiStairDlg.h"
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CMultiStairDlg dialog
|
|
CString CMultiStairDlg::m_strRailHeight = _T("900");
|
|
CString CMultiStairDlg::m_strRailWidth = _T("60");
|
|
CString CMultiStairDlg::m_strRailDistToSide = _T("0");
|
|
BOOL CMultiStairDlg::m_bAutoRail=FALSE;
|
|
BOOL CMultiStairDlg::m_bLeftHand=FALSE;
|
|
BOOL CMultiStairDlg::m_bRightHand=FALSE;
|
|
int CMultiStairDlg::m_nBaseType=0;
|
|
int CMultiStairDlg::m_nMakeMode = 0;
|
|
int CMultiStairDlg::m_nStairFlag = 1;
|
|
|
|
//add by whl on 03/08/15
|
|
int CMultiStairDlg::m_nStepNum1 = 20;
|
|
CString CMultiStairDlg::m_strStepHeight1;
|
|
CString CMultiStairDlg::m_strStairHeight1;
|
|
BOOL CMultiStairDlg::m_bgroup6Status =FALSE;
|
|
//新增成员初始化
|
|
CString CMultiStairDlg::m_strFirstStairRailDist=_T("60");
|
|
CString CMultiStairDlg::m_strEndStairRailDist=_T("60");
|
|
BOOL CMultiStairDlg::m_bUpDir=TRUE;
|
|
CString CMultiStairDlg::m_strSectHeight=_T("500");
|
|
//-------------------------------------------------
|
|
//BOOL CMultiStairDlg::s_bOpenGroup1=TRUE;
|
|
//BOOL CMultiStairDlg::s_bOpenGroup2=FALSE;
|
|
//BOOL CMultiStairDlg::s_bOpenGroup3=FALSE;
|
|
//BOOL CMultiStairDlg::s_bOpenGroup4=TRUE;
|
|
|
|
CMultiStairDlg::CMultiStairDlg(CWnd* pParent /*=NULL*/)
|
|
: CLineStairDlg(CMultiStairDlg::IDD, pParent),m_group6(0)//,
|
|
// m_groups(0),m_group1(WG_ST_HORZ),m_group2(WG_ST_HORZ),m_group3(WG_ST_HORZ),m_group4(WG_ST_HORZ)
|
|
{
|
|
|
|
|
|
//{{AFX_DATA_INIT(CMultiStairDlg)
|
|
m_bLeftWall=FALSE;
|
|
m_bRightWall=FALSE;
|
|
//}}AFX_DATA_INIT
|
|
|
|
//add by whl on 03/08/15
|
|
//Swap In
|
|
Exchange(m_strStairHeight,m_strStairHeight1);
|
|
Exchange(m_strStepHeight,m_strStepHeight1);
|
|
Exchange(m_nStepNum,m_nStepNum1);
|
|
|
|
m_strStairHeight=Dist2Str(DocGetLHeight());
|
|
m_strStepHeight.Format(_T("%.2f"),DocGetLHeight()/m_nStepNum);//modified on 03/07/15 by whl
|
|
|
|
m_bNeed2D0=m_bNeed2D;
|
|
m_bNeed3D0=m_bNeed3D;
|
|
m_bNeed2D=m_bNeed3D=TRUE;
|
|
}
|
|
|
|
CMultiStairDlg::~CMultiStairDlg()
|
|
{
|
|
//多跑楼梯对这两个静态项不影响
|
|
m_bNeed2D=m_bNeed2D0;
|
|
m_bNeed3D=m_bNeed3D0;
|
|
|
|
//add by whl on 03/08/15
|
|
//Swap Out
|
|
Exchange(m_strStairHeight,m_strStairHeight1);
|
|
Exchange(m_strStepHeight,m_strStepHeight1);
|
|
Exchange(m_nStepNum,m_nStepNum1);
|
|
}
|
|
|
|
void CMultiStairDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CLineStairDlg::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(CMultiStairDlg)
|
|
DDX_Radio(pDX, IDC_DRAG_MAKE, m_nMakeMode);
|
|
DDX_Check(pDX, IDC_LEFT_WALL, m_bLeftWall);
|
|
DDX_Check(pDX, IDC_RIGHT_WALL, m_bRightWall);
|
|
//}}AFX_DATA_MAP
|
|
DDX_Text(pDX, IDC_RAIL_HEIGHT, m_strRailHeight);
|
|
DDX_Text(pDX, IDC_RAIL_WIDTH, m_strRailWidth);
|
|
DDX_Text(pDX, IDC_RAIL_DISTTOSIDE, m_strRailDistToSide);
|
|
DDX_Check(pDX, IDC_AUTORAIL, m_bAutoRail);
|
|
DDX_Check(pDX, IDC_HAS_LHAND, m_bLeftHand);
|
|
DDX_Check(pDX, IDC_HAS_RHAND, m_bRightHand);
|
|
DDX_Radio(pDX, IDC_LEFT_BASE, m_nBaseType);
|
|
DDX_Radio(pDX, IDC_RADIO_FIRST, m_nStairFlag);
|
|
DDX_Control(pDX,IDC_GROUP6,m_group6);
|
|
DDX_Control(pDX,IDC_SPIN1,m_ctrlSectNum);
|
|
DDX_GroupStatus(pDX,IDC_GROUP6,m_bgroup6Status);
|
|
//新增内容的映射
|
|
// [7/23/2008 nsh]
|
|
DDX_Check(pDX,IDC_CHECK_UPDIR,m_bUpDir);//标注上楼方向
|
|
DDX_Text(pDX,IDC_EDIT_FIRSTDIST,m_strFirstStairRailDist);//首段扶手伸出
|
|
DDX_Text(pDX,IDC_EDIT_ENDDIST,m_strEndStairRailDist);//尾端扶手伸出
|
|
DDX_Text(pDX,IDC_EDIT_SECTHEIGHT,m_strSectHeight);//剖切高度
|
|
DDX_Text(pDX,IDC_EDIT1,m_iSectNum);//剖切步数
|
|
//-----------------------------------------
|
|
// [10/11/2007 nsh]
|
|
//DDX_Control(pDX,IDC_GROUP1,m_group1);
|
|
//DDX_Control(pDX,IDC_GROUP2,m_group2);
|
|
//DDX_Control(pDX,IDC_GROUP3,m_group3);
|
|
//DDX_Control(pDX,IDC_GROUP4,m_group4);
|
|
//DDX_GroupStatus(pDX,IDC_GROUP1,s_bOpenGroup1);
|
|
//DDX_GroupStatus(pDX,IDC_GROUP2,s_bOpenGroup2);
|
|
//DDX_GroupStatus(pDX,IDC_GROUP3,s_bOpenGroup3);
|
|
//DDX_GroupStatus(pDX,IDC_GROUP4,s_bOpenGroup4);
|
|
}
|
|
BEGIN_MESSAGE_MAP(CMultiStairDlg, CLineStairDlg)
|
|
//{{AFX_MSG_MAP(CMultiStairDlg)
|
|
// NOTE: the ClassWizard will add message map macros here
|
|
ON_BN_CLICKED(IDC_STAIR_CHECK_HEIGHT,OnClickSW)
|
|
//新增事件的操作
|
|
ON_BN_CLICKED(IDC_CHECK_UPDIR,OnClickUpDir)
|
|
ON_EN_CHANGE(IDC_EDIT_FIRSTDIST,OnChangeFirstRailDist)
|
|
ON_EN_CHANGE(IDC_EDIT_ENDDIST,OnChangeEndRailDist)
|
|
ON_EN_CHANGE(IDC_EDIT_SECTHEIGHT,OnChangeSectHeight)
|
|
ON_EN_CHANGE(IDC_EDIT1,OnChangeSectNum)//剖切步数
|
|
//坡道情况下的处理
|
|
ON_BN_CLICKED(IDC_AS_ASCENT,OnClickAsCent)
|
|
ON_BN_CLICKED(IDC_HAS_RHAND,OnClickHasSlent)
|
|
ON_BN_CLICKED(IDC_ON_GROUND,OnClickOnground)
|
|
|
|
//add by xlc on 090220
|
|
ON_EN_KILLFOCUS(IDC_RAIL_DISTTOSIDE,OnRailDisttoSideKF)
|
|
ON_EN_KILLFOCUS(IDC_RAIL_HEIGHT, OnRailHeightKF)
|
|
ON_EN_KILLFOCUS(IDC_RAIL_WIDTH, OnRailWidthKF)
|
|
ON_BN_CLICKED(IDC_HAS_LHAND,OnLeftHandClk)
|
|
ON_BN_CLICKED(IDC_HAS_RHAND,OnRightHandClk)
|
|
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
BOOL CMultiStairDlg::OnInitDialog()
|
|
{
|
|
BOOL res=CLineStairDlg::OnInitDialog();
|
|
//m_groups.Append(&m_group1);
|
|
//m_groups.Append(&m_group2);
|
|
//m_groups.Append(&m_group3);
|
|
//m_groups.Append(&m_group3);
|
|
//m_groups.SetMaxExtent(250);
|
|
|
|
//CRect rect;
|
|
//GetWindowRect(&rect);
|
|
//SetWindowPos(NULL,rect.left,rect.top,rect.Width(),rect.Height()-140,0);
|
|
//AddTip(IDC_STAIR_LENGTH_STATIC2,_T("梯段总长不包括休息平台长度,其始终等于所有踏步的宽度总和,其变化将使踏步宽度同比例变化"));
|
|
AddTip(IDC_DRAG_MAKE,_T("通过鼠标拖动、点击方式来动态控制楼梯平面路径的输入"));
|
|
AddTip(IDC_MATCH_PATH,_T("通过选择已有的楼梯平面路径来自动生成楼梯模型,路径的节点数需为偶数"));
|
|
//--------------------------
|
|
if (m_bAsAscent)
|
|
{
|
|
this->GetDlgItem(IDC_EDIT1)->ShowWindow(SW_HIDE);
|
|
this->GetDlgItem(IDC_STATIC_SECTNUM)->ShowWindow(SW_HIDE);
|
|
this->GetDlgItem(IDC_SPIN1)->ShowWindow(SW_HIDE);
|
|
|
|
this->GetDlgItem(IDC_EDIT_SECTHEIGHT)->ShowWindow(SW_SHOW);
|
|
this->GetDlgItem(IDC_STATIC_SECTHEIGHT)->ShowWindow(SW_SHOW);
|
|
|
|
this->GetDlgItem(IDC_HAS_SLANT)->EnableWindow(TRUE);
|
|
this->GetDlgItem(IDC_ON_GROUND)->EnableWindow(TRUE);
|
|
}
|
|
else
|
|
{
|
|
this->GetDlgItem(IDC_EDIT1)->ShowWindow(SW_SHOW);
|
|
this->GetDlgItem(IDC_STATIC_SECTNUM)->ShowWindow(SW_SHOW);
|
|
this->GetDlgItem(IDC_SPIN1)->ShowWindow(SW_SHOW);
|
|
|
|
this->GetDlgItem(IDC_EDIT_SECTHEIGHT)->ShowWindow(SW_HIDE);
|
|
this->GetDlgItem(IDC_STATIC_SECTHEIGHT)->ShowWindow(SW_HIDE);
|
|
|
|
this->GetDlgItem(IDC_HAS_SLANT)->EnableWindow(FALSE);
|
|
this->GetDlgItem(IDC_ON_GROUND)->EnableWindow(FALSE);
|
|
}
|
|
m_ctrlSectNum.SetRange(1,m_nStepNum);
|
|
//-----------------------------
|
|
|
|
|
|
if (!(m_bLeftHand||m_bRightHand))
|
|
{
|
|
GetDlgItem(IDC_AUTORAIL)->EnableWindow(FALSE);
|
|
}
|
|
return res;
|
|
}
|
|
AcDbEntity*CMultiStairDlg::NewObject()
|
|
{
|
|
TDbEntity*pObj=new TDbMultiStair;
|
|
return pObj;
|
|
}
|
|
|
|
void CMultiStairDlg::Dlg2Obj(AcDbEntity*pObj)
|
|
{
|
|
TDbMultiStair *pStep=TDbMultiStair::cast(pObj);
|
|
ASSERT(pStep);
|
|
|
|
pStep->SetAscent(m_bAsAscent);
|
|
if (m_bAsAscent)//modified by whl on 03/08/15
|
|
{
|
|
pStep->SetSlant(m_bHasSlant);
|
|
pStep->SetOnGround(m_bOnGround);
|
|
}
|
|
|
|
pStep->SetElevation(_tstof(m_strElev));
|
|
pStep->SetStairHeight(_tstof(m_strStairHeight));
|
|
pStep->SetStairWidth(_tstof(m_strStairWidth));
|
|
pStep->SetStepWidth(_tstof(m_strStepWidth));
|
|
pStep->SetStepHeight(_tstof(m_strStepHeight));
|
|
pStep->SetRailHeight(_tstof(m_strRailHeight));
|
|
pStep->SetRailWidth(_tstof(m_strRailWidth));
|
|
pStep->SetRailDistToSide(_tstof(m_strRailDistToSide));
|
|
pStep->SetAutoRail(m_bAutoRail);
|
|
pStep->SetPathSide(m_nBaseType);
|
|
pStep->SetHandRail(OFFSET_LEFT, m_bLeftHand);
|
|
pStep->SetHandRail(OFFSET_RIGHT, m_bRightHand);
|
|
pStep->SetSideBeam(OFFSET_LEFT, m_bNeedLeft);
|
|
pStep->SetSideBeam(OFFSET_RIGHT, m_bNeedRight);
|
|
pStep->SetStairFlag(m_nStairFlag);
|
|
pStep->SetAlongWall(0, m_bLeftWall);
|
|
pStep->SetAlongWall(1, m_bRightWall);
|
|
//新增
|
|
pStep->SetRailDist(::_tstof(m_strFirstStairRailDist));
|
|
pStep->SetRailDistEnd(::_tstof(m_strEndStairRailDist));
|
|
if (m_bAsAscent)
|
|
pStep->SetSectElev(::_tstof(m_strSectHeight));
|
|
else
|
|
pStep->SetSectStepNum(m_iSectNum);
|
|
pStep->SetArrow(m_bUpDir);
|
|
|
|
}
|
|
void CMultiStairDlg::Obj2Dlg(AcDbEntity *pObj)//modified by whl on 03/08/15
|
|
{
|
|
TDbMultiStair *pStep=TDbMultiStair::cast(pObj);
|
|
ASSERT(pStep);
|
|
|
|
m_bAsAscent=pStep->IsAscent();
|
|
if (m_bAsAscent)
|
|
{
|
|
m_bHasSlant=pStep->HasSlant();
|
|
m_bOnGround=pStep->IsOnGround();
|
|
}
|
|
|
|
m_strElev=Dist2Str(pStep->GetElevation());
|
|
m_strStairHeight=Dist2Str(pStep->GetStairHeight());
|
|
m_strStairWidth=Dist2Str(pStep->GetStairWidth());
|
|
m_strRailHeight=Dist2Str(pStep->GetRailHeight());
|
|
m_strRailWidth=Dist2Str(pStep->GetRailWidth());
|
|
m_strStepWidth=Dist2Str(pStep->GetStepWidth());
|
|
m_strStepHeight=Dist2Str(pStep->GetStepHeight());
|
|
m_strRailDistToSide=Dist2Str(pStep->GetRailDistToSide());
|
|
m_bAutoRail=pStep->IsAutoRail();
|
|
m_nBaseType=pStep->GetPathSide();
|
|
m_bLeftHand=pStep->HasHandRail(OFFSET_LEFT);
|
|
m_bRightHand=pStep->HasHandRail(OFFSET_RIGHT);
|
|
m_bNeedLeft=pStep->HasSideBeam(OFFSET_LEFT);
|
|
m_bNeedRight=pStep->HasSideBeam(OFFSET_RIGHT);
|
|
m_nStairFlag=pStep->GetStairFlag();
|
|
m_nStepNum=pStep->GetTotalStepNum();
|
|
m_bLeftWall=pStep->IsAlongWall(0);
|
|
m_bRightWall=pStep->IsAlongWall(1);
|
|
//新增
|
|
m_strFirstStairRailDist=Dist2Str(pStep->GetRailDist());
|
|
m_strEndStairRailDist=Dist2Str(pStep->GetRailDistEnd());
|
|
m_strSectHeight=Dist2Str(pStep->GetSectElev());
|
|
m_bUpDir=pStep->IsArrow();
|
|
if (m_bAsAscent)
|
|
m_strSectHeight=Dist2Str(pStep->GetSectElev());
|
|
else
|
|
m_iSectNum=(int)pStep->GetSectStepNum();
|
|
//double mm=pStep->GetSectStepNum();
|
|
|
|
}
|
|
|
|
bool CMultiStairDlg::UpdateEdit(UINT ctrlID,bool bReportError)
|
|
{
|
|
if (!bValidWnd)
|
|
return false;
|
|
CEdit *pEdit=(CEdit*)GetDlgItem(ctrlID);
|
|
if (pEdit==NULL)
|
|
return false;
|
|
|
|
static bool bUpdating=false;
|
|
if (bUpdating)
|
|
return false;
|
|
bUpdating=true;
|
|
|
|
bool result=true;
|
|
CDataExchange dxOut(this,false);
|
|
if (ctrlID==IDC_STAIR_LENGTH||ctrlID==IDC_STEP_WIDTH||ctrlID==IDC_STAIR_WIDTH) {
|
|
CString temp;
|
|
pEdit->GetWindowText(temp);
|
|
if (ctrlID==IDC_STAIR_LENGTH) {
|
|
} else if (ctrlID==IDC_STEP_WIDTH){
|
|
if (_tstof(temp)>0) {
|
|
m_strStepWidth=temp;
|
|
//m_strStairLength=Dist2Str(_tstof(temp)*(m_bAsAscent? m_nStepNum : m_nStepNum-1));
|
|
//DDX_Text(&dxOut,IDC_STAIR_LENGTH,m_strStairLength);
|
|
//UpdateImage();
|
|
} else if (bReportError) {
|
|
AfxMessageBox(_T("踏步宽度太小!"));
|
|
DDX_Text(&dxOut,IDC_STEP_WIDTH,m_strStepWidth);
|
|
pEdit->SetFocus();
|
|
pEdit->SetSel(0,-1);
|
|
}
|
|
} else {
|
|
if (_tstof(temp)>0) {
|
|
m_strStairWidth=temp;
|
|
UpdateImage();//更新
|
|
} else if (bReportError) {
|
|
AfxMessageBox(_T("梯段宽度太小!"));
|
|
pEdit->SetFocus();
|
|
DDX_Text(&dxOut,IDC_STAIR_WIDTH,m_strStairWidth);//还原
|
|
pEdit->SetSel(0,-1);
|
|
}
|
|
}
|
|
}
|
|
//新增
|
|
else if (ctrlID==IDC_CHECK_UPDIR)
|
|
{
|
|
CDataExchange dxIn(this,TRUE);
|
|
DDX_Check(&dxIn,IDC_CHECK_UPDIR,m_bUpDir);
|
|
DDX_Check(&dxOut,IDC_CHECK_UPDIR,m_bUpDir);
|
|
UpdateImage();
|
|
}
|
|
else if (ctrlID==IDC_EDIT_FIRSTDIST)
|
|
{
|
|
CString temp;
|
|
pEdit->GetWindowText(temp);
|
|
m_strFirstStairRailDist=temp;
|
|
DDX_Text(&dxOut,IDC_EDIT_FIRSTDIST,m_strFirstStairRailDist);
|
|
UpdateImage();
|
|
}
|
|
else if (ctrlID==IDC_EDIT_ENDDIST)
|
|
{
|
|
CString temp;
|
|
pEdit->GetWindowText(temp);
|
|
m_strEndStairRailDist=temp;
|
|
DDX_Text(&dxOut,IDC_EDIT_ENDDIST,m_strEndStairRailDist);
|
|
UpdateImage();
|
|
}
|
|
else if (ctrlID==IDC_EDIT_SECTHEIGHT)
|
|
{
|
|
CString temp;
|
|
pEdit->GetWindowText(temp);
|
|
if (_tstof(temp)>0&&_tstof(temp)<_tstof(m_strStairHeight))
|
|
{
|
|
m_strSectHeight=temp;
|
|
DDX_Text(&dxOut,IDC_EDIT_SECTHEIGHT,m_strSectHeight);
|
|
UpdateImage();
|
|
}
|
|
else if (bReportError) {
|
|
AfxMessageBox(_T("剖切高度不合适!"));
|
|
pEdit->SetFocus();
|
|
DDX_Text(&dxOut,IDC_EDIT_SECTHEIGHT,m_strSectHeight);//还原
|
|
}
|
|
}
|
|
else if (ctrlID==IDC_EDIT1)
|
|
{
|
|
CString temp;
|
|
pEdit->GetWindowText(temp);
|
|
if (_tstof(temp)*_tstof(m_strStepHeight)>0&&_tstof(temp)*_tstof(m_strStepHeight)<_tstof(m_strStairHeight))
|
|
{
|
|
m_iSectNum=::_ttoi(temp);
|
|
DDX_Text(&dxOut,IDC_EDIT1,m_iSectNum);
|
|
}
|
|
else if (bReportError) {
|
|
AfxMessageBox(_T("剖切步数不合适!"));
|
|
pEdit->SetFocus();
|
|
DDX_Text(&dxOut,IDC_EDIT1,m_iSectNum);//还原
|
|
}
|
|
}
|
|
|
|
//modify by xlc on 090220
|
|
else if (ctrlID==IDC_RAIL_DISTTOSIDE)
|
|
{//扶手距边的处理过程
|
|
|
|
CString temp;
|
|
pEdit->GetWindowText(temp);
|
|
if (_tstof(temp)>=0&&_tstof(temp)<_tstof(m_strStairWidth)*0.5)
|
|
{
|
|
m_strRailDistToSide=temp;
|
|
UpdateImage();
|
|
}
|
|
else if (bReportError)
|
|
{
|
|
AfxMessageBox(_T("输入的扶手距边不正确!"));
|
|
DDX_Text(&dxOut,IDC_RAIL_DISTTOSIDE,m_strRailDistToSide);
|
|
pEdit->SetFocus();
|
|
}
|
|
}
|
|
else if (ctrlID==IDC_RAIL_HEIGHT)//扶手高度
|
|
{
|
|
CString temp;
|
|
pEdit->GetWindowText(temp);
|
|
double x=::_tstof(temp);
|
|
if (temp=="" || _tstof(temp)<=_DIST_SNAP)
|
|
{
|
|
this->MessageBox(_T("输入的扶手高度不正确!"),_T("AutoCAD"),MB_OK);
|
|
DDX_Text(&dxOut,IDC_RAIL_HEIGHT,m_strRailHeight);
|
|
}
|
|
else
|
|
{
|
|
m_strRailHeight = temp;
|
|
UpdateImage();
|
|
}
|
|
}
|
|
else if (ctrlID==IDC_RAIL_WIDTH)//扶手宽度
|
|
{
|
|
CString temp;
|
|
pEdit->GetWindowText(temp);
|
|
double x=::_tstof(temp);
|
|
|
|
if (temp=="" || x<=0)
|
|
{
|
|
this->MessageBox(_T("输入的扶手宽度不正确!"),_T("AutoCAD"),MB_OK);
|
|
DDX_Text(&dxOut,IDC_RAIL_WIDTH,m_strRailWidth);
|
|
}
|
|
else
|
|
{
|
|
m_strRailWidth =temp;
|
|
}
|
|
}
|
|
|
|
//else if (ctrlID==IDC_AS_ASCENT || ctrlID==IDC_HAS_RHAND || ctrlID==IDC_ON_GROUND)
|
|
//{//坡道各项处理
|
|
|
|
//}
|
|
//-----------------------------------------------
|
|
else if (CBaseStairDlg::UpdateEdit(ctrlID,bReportError)&&
|
|
(ctrlID==IDC_STEP_NUM||ctrlID==IDC_STEP_HEIGHT)){
|
|
} else
|
|
result=false;
|
|
|
|
bUpdating=false;
|
|
return result;
|
|
}
|
|
|
|
void CMultiStairDlg::OnOK()
|
|
{
|
|
//---------------------------
|
|
// nsh 修改于20070903
|
|
// --------------------------
|
|
|
|
//CToolTipDialog::OnOK();
|
|
CModelessDialog::OnOK();
|
|
}
|
|
void CMultiStairDlg::OnClickSW()
|
|
{
|
|
this->ShowWindow(SW_HIDE);
|
|
this->GetDist();
|
|
this->ShowWindow(SW_SHOW);
|
|
}
|
|
void CMultiStairDlg::GetDist()
|
|
{//得到楼梯长度的函数
|
|
ads_real xDist;
|
|
static CString temp;
|
|
temp=m_strStairWidth;
|
|
BeginEditorCommand();
|
|
int i=ads_getdist(NULL,_T("请输入楼梯的宽度:"),&xDist);
|
|
CompleteEditorCommand();
|
|
|
|
if (i==RTNORM)
|
|
{
|
|
if (xDist>0)
|
|
{
|
|
this->UpdateData();
|
|
m_strStairWidth.Format(_T("%f"),xDist);
|
|
this->UpdateData(FALSE);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (i==RTNONE)
|
|
{
|
|
m_strStairWidth =temp;
|
|
this->UpdateData(FALSE);
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
//新增操作
|
|
void CMultiStairDlg::OnClickUpDir()
|
|
{//标注上楼方向
|
|
UpdateEdit(IDC_CHECK_UPDIR,false);
|
|
return;
|
|
}
|
|
void CMultiStairDlg::OnChangeFirstRailDist()
|
|
{//首层扶手伸出
|
|
UpdateEdit(IDC_EDIT_FIRSTDIST,false);
|
|
return;
|
|
}
|
|
void CMultiStairDlg::OnChangeEndRailDist()
|
|
{//尾层扶手伸出
|
|
UpdateEdit(IDC_EDIT_ENDDIST,false);
|
|
return;
|
|
}
|
|
void CMultiStairDlg::OnChangeSectHeight()
|
|
{//剖切高度
|
|
UpdateEdit(IDC_EDIT_SECTHEIGHT,true);
|
|
return;
|
|
}
|
|
void CMultiStairDlg::OnChangeSectNum()
|
|
{
|
|
UpdateEdit(IDC_EDIT1,true);
|
|
}
|
|
|
|
//add by xlc on 090220
|
|
void CMultiStairDlg::OnRailDisttoSideKF()
|
|
{
|
|
UpdateEdit(IDC_RAIL_DISTTOSIDE,true);
|
|
}
|
|
void CMultiStairDlg::OnRailHeightKF()
|
|
{
|
|
UpdateEdit(IDC_RAIL_HEIGHT,true);
|
|
}
|
|
|
|
void CMultiStairDlg::OnRailWidthKF()
|
|
{
|
|
UpdateEdit(IDC_RAIL_WIDTH,true);
|
|
}
|
|
|
|
//以下为坡道的情况下的处理
|
|
void CMultiStairDlg::OnClickAsCent()
|
|
{
|
|
CDataExchange dxIn(this,true);
|
|
DDX_Check(&dxIn,IDC_AS_ASCENT,m_bAsAscent);
|
|
//--------------------------
|
|
if (m_bAsAscent)
|
|
{
|
|
this->GetDlgItem(IDC_EDIT1)->ShowWindow(SW_HIDE);
|
|
this->GetDlgItem(IDC_STATIC_SECTNUM)->ShowWindow(SW_HIDE);
|
|
this->GetDlgItem(IDC_SPIN1)->ShowWindow(SW_HIDE);
|
|
|
|
this->GetDlgItem(IDC_EDIT_SECTHEIGHT)->ShowWindow(SW_SHOW);
|
|
this->GetDlgItem(IDC_STATIC_SECTHEIGHT)->ShowWindow(SW_SHOW);
|
|
|
|
this->GetDlgItem(IDC_HAS_SLANT)->EnableWindow(TRUE);
|
|
this->GetDlgItem(IDC_ON_GROUND)->EnableWindow(TRUE);
|
|
}
|
|
else
|
|
{
|
|
this->GetDlgItem(IDC_EDIT1)->ShowWindow(SW_SHOW);
|
|
this->GetDlgItem(IDC_STATIC_SECTNUM)->ShowWindow(SW_SHOW);
|
|
this->GetDlgItem(IDC_SPIN1)->ShowWindow(SW_SHOW);
|
|
|
|
this->GetDlgItem(IDC_EDIT_SECTHEIGHT)->ShowWindow(SW_HIDE);
|
|
this->GetDlgItem(IDC_STATIC_SECTHEIGHT)->ShowWindow(SW_HIDE);
|
|
|
|
this->GetDlgItem(IDC_HAS_SLANT)->EnableWindow(FALSE);
|
|
this->GetDlgItem(IDC_ON_GROUND)->EnableWindow(FALSE);
|
|
}
|
|
//以下是在切换的时候转化剖切高度和剖切步数的计算
|
|
CDataExchange dxOut(this,false);
|
|
if (m_bAsAscent)
|
|
{
|
|
m_strSectHeight=Dist2Str((m_iSectNum-0.5)*::_tstof(m_strStepHeight));
|
|
DDX_Text(&dxOut,IDC_EDIT_SECTHEIGHT,m_strSectHeight);
|
|
}
|
|
else
|
|
{
|
|
m_iSectNum=(int)(::_tstof(m_strSectHeight)/::_tstof(m_strStepHeight)+0.5);
|
|
DDX_Text(&dxOut,IDC_EDIT1,m_iSectNum);
|
|
}
|
|
UpdateImage();
|
|
//-----------------------------
|
|
}
|
|
void CMultiStairDlg::OnClickHasSlent()
|
|
{
|
|
CDataExchange dxIn(this,true);
|
|
DDX_Check(&dxIn,IDC_HAS_RHAND,m_bRightHand);
|
|
UpdateImage();
|
|
}
|
|
void CMultiStairDlg::OnClickOnground()
|
|
{
|
|
CDataExchange dxIn(this,true);
|
|
|
|
//modify by xlc on 090220
|
|
//DDX_Text(&dxIn,IDC_ON_GROUND,m_bOnGround);
|
|
DDX_Check(&dxIn,IDC_ON_GROUND,m_bOnGround);
|
|
|
|
UpdateImage();
|
|
}
|
|
//----------------------------------
|
|
|
|
void CMultiStairDlg::OnLeftHandClk()
|
|
{
|
|
UpdateData();
|
|
if (m_bLeftHand||m_bRightHand)
|
|
{
|
|
GetDlgItem(IDC_AUTORAIL)->EnableWindow(TRUE);
|
|
}
|
|
else
|
|
{
|
|
GetDlgItem(IDC_AUTORAIL)->EnableWindow(FALSE);
|
|
}
|
|
}
|
|
void CMultiStairDlg::OnRightHandClk()
|
|
{
|
|
UpdateData();
|
|
if (m_bLeftHand||m_bRightHand)
|
|
{
|
|
GetDlgItem(IDC_AUTORAIL)->EnableWindow(TRUE);
|
|
}
|
|
else
|
|
{
|
|
GetDlgItem(IDC_AUTORAIL)->EnableWindow(FALSE);
|
|
}
|
|
} |