Files
envi-code/SourceCode/Code2026/tg_shs/shs_kerncmd/CrossStairDlg.cpp
T

1095 lines
30 KiB
C++
Raw Normal View History

2026-10-04 00:04:20 +08:00
#include "stdafx.h"
2026-09-28 15:28:50 +08:00
#include "crossstairdlg.h"
#include "resource.h"
#include "tchar.h"
2026-10-04 00:04:20 +08:00
//------------------------交叉楼梯-----------------------
2026-09-28 15:28:50 +08:00
//
int CCrossStairDlg::m_iSelectFloor=1;
int CCrossStairDlg::m_iSectStepNum=10;
CString CCrossStairDlg::m_strRailHeight=_T("900");
CString CCrossStairDlg::m_strRailWidth=_T("60");
CString CCrossStairDlg::m_strRailDistToSide=_T("0");
CString CCrossStairDlg::m_strStepWidth=_T("270");
CString CCrossStairDlg::m_strStairWidth=_T("1200");
CString CCrossStairDlg::m_strSpaceWidth=_T("2560");
CString CCrossStairDlg::m_strStairLength=_T("5400");
BOOL CCrossStairDlg::m_bRailOut=FALSE;
BOOL CCrossStairDlg::m_bHasCellar=FALSE;
BOOL CCrossStairDlg::m_bLeftDown=FALSE;
BOOL CCrossStairDlg::m_bHasOutRoof=FALSE;
BOOL CCrossStairDlg::m_bLeftUp=FALSE;
int CCrossStairDlg::m_iLRDown=0;
BOOL CCrossStairDlg::m_bAutoOutRail=FALSE;
2026-10-04 00:04:20 +08:00
BOOL CCrossStairDlg::m_bSelectUpDir=TRUE;//选择上楼的方向
2026-09-28 15:28:50 +08:00
CString CCrossStairDlg::m_strRailOutDis=_T("0");
BOOL CCrossStairDlg::m_bInsideRail=FALSE;
2026-10-04 00:04:20 +08:00
BOOL CCrossStairDlg::m_bHasInsideHandRail=TRUE;//有内侧扶手
//保留结果
2026-09-28 15:28:50 +08:00
int CCrossStairDlg::m_isaveStepNum=20;
CString CCrossStairDlg::m_strsaveStepHeight=_T("150");
CString CCrossStairDlg::m_strsaveStairHeight=_T("3000");
IMPLEMENT_DYNAMIC(CCrossStairDlg,CBaseStairDlg)
2026-10-04 00:04:20 +08:00
//所有的Radio,CheckButton的处理过程放在UpdateSel中完成
//更新UpdateImage操作
2026-09-28 15:28:50 +08:00
BEGIN_MESSAGE_MAP(CCrossStairDlg,CBaseStairDlg)
ON_BN_CLICKED(IDC_BSPACE_WIDTH,OnClickSpaceWidth)
ON_BN_CLICKED(IDC_BSTAIR_WIDTH,OnClickStairWidth)
2026-10-04 00:04:20 +08:00
ON_BN_CLICKED(IDC_INSIDERAIL,UpdateSel)//内侧栏杆
//对楼层选择的处理
2026-09-28 15:28:50 +08:00
ON_CONTROL_RANGE(BN_CLICKED,IDC_RADIO_FIRST,IDC_RADIO_TOP,OnControlRange)
ON_BN_CLICKED(IDC_HAS_CELLAR,OnClickHasCellar)
ON_BN_CLICKED(IDC_LEFT_DOWN,OnClickHasCellar)
ON_BN_CLICKED(IDC_RIGHT_DOWN,OnClickHasCellar)
ON_BN_CLICKED(IDC_HAS_ROOF,OnClickHasRoof)
ON_BN_CLICKED(IDC_LEFT_UP,OnClickHasRoof)
ON_BN_CLICKED(IDC_RIGHT_UP,OnClickHasRoof)
2026-10-04 00:04:20 +08:00
//选择上楼方向
2026-09-28 15:28:50 +08:00
ON_BN_CLICKED(IDC_LEFT_UPDIR,UpdateSel)
ON_BN_CLICKED(IDC_RIGHT_UPDIR,UpdateSel)
ON_BN_CLICKED(IDC_HAS_ARROW,UpdateSel)
2026-10-04 00:04:20 +08:00
//落地
2026-09-28 15:28:50 +08:00
ON_BN_CLICKED(IDC_ON_GROUND,UpdateSel)
2026-10-04 00:04:20 +08:00
//扶手
2026-09-28 15:28:50 +08:00
ON_BN_CLICKED(IDC_RAIL_AUTO,UpdateSel)
2026-10-04 00:04:20 +08:00
ON_BN_CLICKED(IDC_CHECK_HASINSIDERAIL,UpdateSel)//有内侧扶手
2026-09-28 15:28:50 +08:00
ON_EN_CHANGE(IDC_RAIL_HEIGHT,OnChangeRailHeight)
ON_EN_CHANGE(IDC_RAIL_WIDTH,OnChangeRailWidth)
ON_EN_CHANGE(IDC_RAIL_DISTTOSIDE,OnChangeRailDistoSide)
ON_EN_CHANGE(IDC_RAIL_OUTDIS,OnChangeRailOutDis)
2026-10-04 00:04:20 +08:00
//坡道
2026-09-28 15:28:50 +08:00
ON_BN_CLICKED(IDC_HAS_SLANT,UpdateSel)
2026-10-04 00:04:20 +08:00
//边梁
2026-09-28 15:28:50 +08:00
ON_BN_CLICKED(IDC_LEFT_BEAM,UpdateSel)
ON_BN_CLICKED(IDC_RIGHT_BEAM,UpdateSel)
2026-10-04 00:04:20 +08:00
//事件响应
2026-09-28 15:28:50 +08:00
ON_EN_CHANGE(IDC_STAIR_HEIGHT,OnChangeStairHeight)
ON_EN_CHANGE(IDC_STAIR_WIDTH,OnChangeStairWidth)
ON_EN_CHANGE(IDC_SPACE_WIDTH,OnChangeSpaceWidth)
ON_EN_CHANGE(IDC_STEP_WIDTH,OnChangeStepWidth)
ON_EN_CHANGE(IDC_STEP_NUM,OnChangeStepNum)
ON_EN_CHANGE(IDC_STEP_HEIGHT,OnChangeStepHeight)
ON_EN_CHANGE(IDC_POUSTEP_NUM,OnChangePouNum)
ON_CBN_SELCHANGE(IDC_STAIR_HEIGHTCOMBOX,OnSelChangeStairHeightComBox)
ON_CBN_EDITCHANGE(IDC_STAIR_HEIGHTCOMBOX,OnChangeStairHeightComBox)
ON_BN_CLICKED(IDC_OUTRAIL,OnClickRailOut)
2026-10-04 00:04:20 +08:00
//楼层高度失去焦点的操作
2026-09-28 15:28:50 +08:00
ON_CBN_KILLFOCUS(IDC_STAIR_HEIGHTCOMBOX,OnKFStairHeight)
2026-10-04 00:04:20 +08:00
//踏步高度失去焦点
2026-09-28 15:28:50 +08:00
ON_CBN_KILLFOCUS(IDC_STEP_NUM,OnKFStepNum)
ON_EN_KILLFOCUS(IDC_SPACE_WIDTH,OnKFSpaceWidth)
ON_EN_KILLFOCUS(IDC_STEP_HEIGHT,OnKFStepHeight)
ON_EN_KILLFOCUS(IDC_RAIL_HEIGHT,OnKFRailHeight)
ON_EN_KILLFOCUS(IDC_RAIL_WIDTH,OnKFRailWidth)
ON_EN_KILLFOCUS(IDC_RAIL_DISTTOSIDE,OnKFRailDistoSide)
ON_EN_KILLFOCUS(IDC_RAIL_OUTDIS,OnKFRailOutDis)
ON_EN_KILLFOCUS(IDC_STAIR_WIDTH,OnKFStairWidth)
ON_EN_KILLFOCUS(IDC_STEP_WIDTH,OnKFStepWidth)
ON_EN_KILLFOCUS(IDC_POUSTEP_NUM,OnKFPouNum)
ON_WM_CLOSE()
END_MESSAGE_MAP()
CCrossStairDlg::CCrossStairDlg(CWnd *pParent/* =NULL */):CBaseStairDlg(CCrossStairDlg::IDD, pParent),m_group1(0)
{
2026-10-04 00:04:20 +08:00
m_bHasArrow=TRUE;//标注
m_bGroupStatus=FALSE;//组状态
//平台长度的初始化
2026-09-28 15:28:50 +08:00
m_dSlabLength=1200;
m_dSlabLengthLR=1200;
m_dSlabLengthUR=1200;
Exchange(m_nStepNum,m_isaveStepNum);
Exchange(m_strStepHeight,m_strsaveStepHeight);
Exchange(m_strStairHeight,m_strsaveStairHeight);
2026-10-04 00:04:20 +08:00
//初始话
m_bEdit=FALSE;//处于非编辑状态
m_pBakObj=NULL;//为空状态
2026-09-28 15:28:50 +08:00
}
CCrossStairDlg::CCrossStairDlg(UINT idd,CWnd *pParent/*=NULL*/):CBaseStairDlg(idd,pParent),m_group1(0)
{
2026-10-04 00:04:20 +08:00
m_bHasArrow=TRUE;//标注
m_bGroupStatus=FALSE;//组状态
//平台长度的初始化
2026-09-28 15:28:50 +08:00
m_dSlabLength=1200;
m_dSlabLengthLR=1200;
m_dSlabLengthUR=1200;
Exchange(m_nStepNum,m_isaveStepNum);
Exchange(m_strStepHeight,m_strsaveStepHeight);
Exchange(m_strStairHeight,m_strsaveStairHeight);
2026-10-04 00:04:20 +08:00
//初始话
m_bEdit=FALSE;//处于非编辑状态
m_pBakObj=NULL;//为空状态
2026-09-28 15:28:50 +08:00
}
CCrossStairDlg::~CCrossStairDlg()
{
Exchange(m_nStepNum,m_isaveStepNum);
Exchange(m_strStepHeight,m_strsaveStepHeight);
Exchange(m_strStairHeight,m_strsaveStairHeight);
delete m_pBakObj;
}
BOOL CCrossStairDlg::OnInitDialog()
{
CBaseStairDlg::OnInitDialog();
spin.SetRange(1,m_nStepNum);
AddTip(IDC_NEED3D);
AddTip(IDC_NEED2D);
2026-10-04 00:04:20 +08:00
AddTip(IDC_STAIR_HEIGHT_STATIC,_T("楼梯高度始终等于所有踏步的高度总和,改变楼梯高度将使踏步数变化,同时可能微调踏步高度"));
AddTip(IDC_STEP_NUM_STATIC,_T("改变踏步数将使踏步高度反向变化"));
AddTip(IDC_STEP_HEIGHT_STATIC,_T("输入一个大概的近似踏步高度,系统将自动设置正确值;改变踏步高度将引起踏步数反向变化"));
2026-09-28 15:28:50 +08:00
UpdateSel();
return TRUE;
}
void CCrossStairDlg::DoDataExchange(CDataExchange* pDX)
{
CBaseStairDlg::DoDataExchange(pDX);
DDX_Text(pDX,IDC_POUSTEP_NUM,m_iSectStepNum);
DDX_Text(pDX,IDC_STEP_WIDTH,m_strStepWidth);
DDX_Text(pDX,IDC_STAIR_WIDTH,m_strStairWidth);
DDX_Text(pDX,IDC_RAIL_WIDTH,m_strRailWidth);
DDX_Text(pDX,IDC_RAIL_DISTTOSIDE,m_strRailDistToSide);
DDX_Text(pDX,IDC_RAIL_HEIGHT,m_strRailHeight);
DDX_Text(pDX,IDC_RAIL_OUTDIS,m_strRailOutDis);
2026-10-04 00:04:20 +08:00
DDX_Text(pDX,IDC_STATIC_WELLWID,m_strStairWellWidth);//梯井宽度
//楼层的设置
//楼梯高度的设置
2026-09-28 15:28:50 +08:00
DDX_CBString(pDX,IDC_STAIR_HEIGHTCOMBOX,m_strStairHeight);
DDX_Control(pDX,IDC_STAIR_HEIGHTCOMBOX,m_ctrlStairHeight);
DDX_Radio(pDX,IDC_RADIO_FIRST,m_iSelectFloor);
DDX_Check(pDX,IDC_HAS_CELLAR,m_bHasCellar);
DDX_Radio(pDX,IDC_LEFT_DOWN,m_bLeftDown);
DDX_Check(pDX,IDC_HAS_ROOF,m_bHasOutRoof);
DDX_Radio(pDX,IDC_LEFT_UP,m_bLeftUp);
2026-10-04 00:04:20 +08:00
//上楼方向
2026-09-28 15:28:50 +08:00
DDX_Radio(pDX,IDC_LEFT_UPDIR,m_bSelectUpDir);
DDX_Check(pDX,IDC_HAS_ARROW,m_bHasArrow);
2026-10-04 00:04:20 +08:00
//扶手
2026-09-28 15:28:50 +08:00
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_Control(pDX,IDC_SPIN2,spin);
DDX_Text(pDX,IDC_STAIR_WIDTH,m_strStairWidth);
DDX_Text(pDX,IDC_SPACE_WIDTH,m_strSpaceWidth);
DDX_Text(pDX,IDC_STAIR_LENGTH,m_strStairLength);
2026-10-04 00:04:20 +08:00
DDX_Check(pDX,IDC_INSIDERAIL,m_bInsideRail);//内侧栏杆
2026-09-28 15:28:50 +08:00
DDX_Check(pDX,IDC_CHECK_HASINSIDERAIL,m_bHasInsideHandRail);//has inside handrail
2026-10-04 00:04:20 +08:00
//边梁
2026-09-28 15:28:50 +08:00
DDX_Check(pDX,IDC_LEFT_BEAM,m_bLeftBeam);
DDX_Check(pDX,IDC_RIGHT_BEAM,m_bRightBeam);
DDX_Check(pDX,IDC_OUTRAIL,m_bRailOut);
2026-10-04 00:04:20 +08:00
DDX_Check(pDX,IDC_RAIL_AUTO,m_bAutoOutRail);//是否自动生成扶手
2026-09-28 15:28:50 +08:00
DDX_Control(pDX,IDC_GROUP1,m_group1);
DDX_GroupStatus(pDX,IDC_GROUP1,m_bGroupStatus);
2026-10-04 00:04:20 +08:00
//是否有剖断
2026-09-28 15:28:50 +08:00
}
void CCrossStairDlg::OnClickSpaceWidth()
2026-10-04 00:04:20 +08:00
{//获取梯间宽的函数
2026-09-28 15:28:50 +08:00
double dDist=::_tstof(m_strSpaceWidth);
BeginEditorCommand();
2026-10-04 00:04:20 +08:00
int nRet=GetDist(_T("\n楼梯间宽度"), dDist, RSG_NOZERO|RSG_NONEG|RSG_2D);
2026-09-28 15:28:50 +08:00
CompleteEditorCommand();
if (nRet==RTNORM)
{
if (dDist<2.0*_MIN_STAIRWIDTH)
{
2026-10-04 00:04:20 +08:00
::AfxMessageBox(_T("梯间宽度不正确"));
2026-09-28 15:28:50 +08:00
return;
}
m_strSpaceWidth.Format(_T("%.2f"),dDist);
if (dDist<::_tstof(m_strStairWidth)*2)
{
m_strStairWidth.Format(_T("%.2f"),_tstof(m_strSpaceWidth)/2);
}
m_strStairWellWidth=Dist2Str(::_tstof(m_strSpaceWidth)-2.0*::_tstof(m_strStairWidth));
UpdateData(FALSE);
UpdateImage();
}
return;
}
void CCrossStairDlg::OnClickStairWidth()
2026-10-04 00:04:20 +08:00
{//获取梯段宽
2026-09-28 15:28:50 +08:00
double dDist=::_tstof(m_strStairWidth);
BeginEditorCommand();
2026-10-04 00:04:20 +08:00
int nRet=GetDist(_T("\n梯段宽度"), dDist, RSG_NOZERO|RSG_NONEG|RSG_2D);
2026-09-28 15:28:50 +08:00
CompleteEditorCommand();
if (nRet==RTNORM)
{
if (dDist>_tstof(m_strSpaceWidth)*0.5)
{
2026-10-04 00:04:20 +08:00
::AfxMessageBox(_T("梯段宽度不正确"));
2026-09-28 15:28:50 +08:00
return;
}
m_strStairWidth.Format(_T("%.2f"),dDist);
m_strStairWellWidth=Dist2Str(::_tstof(m_strSpaceWidth)-2.0*::_tstof(m_strStairWidth));
UpdateData(FALSE);
UpdateImage();
}
return;
}
void CCrossStairDlg::Obj2Dlg(const TDbEntity *pStep)
{
TDbCrossStair *pStair=TDbCrossStair::cast(pStep);
// [8/14/2008 nsh]
//--------------------------------
m_bEdit=TRUE;
2026-10-04 00:04:20 +08:00
m_pBakObj=(TDbCrossStair*)(pStair->clone());//专递值
2026-09-28 15:28:50 +08:00
//--------------------------------
//VERIFY(pStair);
2026-10-04 00:04:20 +08:00
//踏步操作
2026-09-28 15:28:50 +08:00
m_strStepHeight.Format(_T("%.2f"),pStair->GetStepHeight());
m_strStepWidth=Dist2Str(pStair->GetStepWidth());
m_nStepNum=pStair->GetStepNum();
m_strStairWidth=Dist2Str(pStair->GetStairWidth());
m_strStairHeight=Dist2Str(pStair->GetStairHeight());
m_strRailDistToSide=Dist2Str(pStair->GetRailDistToSide());
m_strRailOutDis=Dist2Str(pStair->GetRailDist());
int iFloor=pStair->GetStairFlag();
int iSide=pStair->GetSideFlag();
switch(iFloor)
{
case 0:
{
m_iSelectFloor=0;
if (iSide==1){m_bHasCellar=TRUE,m_bLeftDown=FALSE;}
else if (iSide==2){m_bHasCellar=TRUE,m_bLeftDown=TRUE;}
}
break;
case 1:
{
m_iSelectFloor=1;
}
break;
case 2:
{
m_iSelectFloor=2;
if (iSide==1){m_bHasOutRoof=TRUE,m_bLeftUp=FALSE;}
else if (iSide==2){m_bHasOutRoof=TRUE,m_bLeftUp=TRUE;}
}
break;
default:
break;
}
m_strSpaceWidth=Dist2Str(pStair->GetSpaceWidth());
m_iSectStepNum=pStair->GetSectStepNum();
m_bAutoOutRail=pStair->IsAutoOutRail();
/*m_bLeftBeam=pStair->HasSideBeam(0);
m_bRightBeam=pStair->HasSideBeam(1);*/
m_bLeftBeam=pStair->IsInSideBeam();
m_bRightBeam=pStair->IsOutSideBeam();
m_bSelectUpDir=pStair->GetStartSide();
m_bRailOut=pStair->IsOutRail();
m_bAsAscent=pStair->IsAscent();
m_bOnGround=pStair->IsOnGround();
m_bSelectUpDir=pStair->GetStartSide();
2026-10-04 00:04:20 +08:00
m_bHasArrow=pStair->IsArrow();//标注
2026-09-28 15:28:50 +08:00
m_bInsideRail=pStair->IsAutoRail();
2026-10-04 00:04:20 +08:00
m_bHasInsideHandRail=pStair->IsInRail();//内侧扶手
2026-09-28 15:28:50 +08:00
m_strRailWidth=Dist2Str(pStair->GetRailWidth());
m_strRailHeight=Dist2Str(pStair->GetRailHeight());
2026-10-04 00:04:20 +08:00
//读取平台长度
2026-09-28 15:28:50 +08:00
m_dSlabLength=pStair->GetSlabSize();
m_dSlabLengthUR=pStair->GetSlabSizeUR();
m_dSlabLengthLR=pStair->GetSlabSizeLR();
2026-10-04 00:04:20 +08:00
//梯井宽度
2026-09-28 15:28:50 +08:00
m_strStairWellWidth=Dist2Str(::_tstof(m_strSpaceWidth)-2.0*::_tstof(m_strStairWidth));
return;
}
void CCrossStairDlg::Dlg2Obj(AcDbEntity *pStep)
{
TDbCrossStair *pStair=TDbCrossStair::cast(pStep);
//VERIFY(pStair);
pStair->SetStepHeight(::_tstof(m_strStepHeight));
pStair->SetStepWidth(::_tstof(m_strStepWidth));
pStair->SetStepNum(m_nStepNum);
pStair->SetStairWidth(::_tstof(m_strStairWidth));
pStair->SetRailWidth(::_tstof(m_strRailWidth));
pStair->SetRailHeight(::_tstof(m_strRailHeight));
pStair->SetRailDistToSide(::_tstof(m_strRailDistToSide));
pStair->SetRailDist(::_tstof(m_strRailOutDis));
pStair->SetStairFlag(m_iSelectFloor);
pStair->SetSpaceWidth(::_tstof(m_strSpaceWidth));
pStair->SetOutRail(m_bRailOut);
pStair->SetSideFlag(m_iLRDown);
2026-10-04 00:04:20 +08:00
pStair->SetSectStepNum(m_iSectStepNum);//剖切的读取可能会出现问题
2026-09-28 15:28:50 +08:00
pStair->SetStartSide(m_bSelectUpDir);
pStair->SetAscent(m_bAsAscent);
2026-10-04 00:04:20 +08:00
pStair->SetSlant(m_bHasSlant);//是否加防滑线
pStair->SetAutoOutRail(m_bRailOut?m_bAutoOutRail:FALSE);//是否自动生成栏杆
2026-09-28 15:28:50 +08:00
pStair->SetOnGround(m_bOnGround);
/*pStair->SetSideBeam(0,m_bLeftBeam);
pStair->SetSideBeam(1,m_bRightBeam);*/
pStair->SetInSideBeam(m_bLeftBeam);
pStair->SetOutSideBeam(m_bRightBeam);
pStair->SetViewCtrl(m_iViewCtrl);
//pStair->SetAutoRail(m_bInsideRail);
pStair->SetArrow(m_bHasArrow);
2026-10-04 00:04:20 +08:00
pStair->SetAutoRail(m_bHasInsideHandRail?m_bInsideRail:FALSE);//测试,内测栏杆
pStair->SetInRail(m_bHasInsideHandRail);//内侧扶手
//写入平台长度
2026-09-28 15:28:50 +08:00
pStair->SetSlabSize(m_dSlabLength);
pStair->SetSlabSizeUR(m_dSlabLengthUR);
pStair->SetSlabSizeLR(m_dSlabLengthLR);
// [8/14/2008 nsh]
//------------------------
if (m_bEdit)
{
delete m_pBakObj;
m_pBakObj=(TDbCrossStair*)(pStair->clone());
}
//------------------------
return;
}
AcDbEntity* CCrossStairDlg::NewObject()
{
TDbCrossStair *pEnt;
if (m_pBakObj==NULL)
{
pEnt=new TDbCrossStair;
pEnt->setLayer(InitLayer(LAY_STAIR));
pEnt->SetLayerHand3d(InitLayer(LAY_HANDRAIL));
pEnt->SetLayerRail3d(InitLayer(LAY_RAIL));
pEnt->SetLayerText(InitLayer(LAY_TEXT));
pEnt->SetTextStyle(InitTextStyle(TS_DIM));
pEnt->SetLayerArrow(InitLayer(LAY_OTHER_DIM));
2026-10-04 00:04:20 +08:00
//add by xlc on 090205 解决用户坐标系下预览文字倾斜的问题
2026-09-28 15:28:50 +08:00
pEnt->SetLayoutRotation(0);
return pEnt;
}
else
{
return (AcDbEntity*)(m_pBakObj->clone());
}
}
bool CCrossStairDlg::UpdateEdit(UINT ctrlID,bool bReportError/* =false */)
2026-10-04 00:04:20 +08:00
{//应用于Change事件
2026-09-28 15:28:50 +08:00
CWnd *pImageBox=GetDlgItem(IDC_PREVIEW);
if (!pImageBox)
return false;
if (GetSafeHwnd()==NULL)
return false;
CEdit *pEdit=(CEdit*)GetDlgItem(ctrlID);
if (pEdit==NULL)
return false;
static bool bUpdating=false;
if (bUpdating)
return false;
bUpdating=true;
CDataExchange dxOut(this,false);
CString temp;
pEdit->GetWindowText(temp);
switch(ctrlID)
2026-10-04 00:04:20 +08:00
{//以下分布的处理ID
2026-09-28 15:28:50 +08:00
case IDC_STAIR_WIDTH:
2026-10-04 00:04:20 +08:00
{//梯段宽
2026-09-28 15:28:50 +08:00
if (2*::_tstof(temp)<::_tstof(m_strSpaceWidth) && temp!=_T("") && ::_tstof(temp)>_DIST_SNAP)
{
m_strStairWidth=temp;
DDX_Text(&dxOut,IDC_STAIR_WIDTH,m_strStairWidth);
2026-10-04 00:04:20 +08:00
//梯井宽度
2026-09-28 15:28:50 +08:00
m_strStairWellWidth=Dist2Str(::_tstof(m_strSpaceWidth)-2.0*::_tstof(m_strStairWidth));
DDX_Text(&dxOut,IDC_STATIC_WELLWID,m_strStairWellWidth);
}
else
{
if (bReportError)
{
2026-10-04 00:04:20 +08:00
::AfxMessageBox(_T("梯段宽不正确!"));
2026-09-28 15:28:50 +08:00
DDX_Text(&dxOut,IDC_STAIR_WIDTH,m_strStairWidth);
pEdit->SetFocus();
}
bUpdating=FALSE;
return false;
}
}
break;
case IDC_SPACE_WIDTH:
2026-10-04 00:04:20 +08:00
{//梯间宽
2026-09-28 15:28:50 +08:00
if (::_tstof(temp)>=2.0*_MIN_STAIRWIDTH)
{
m_strSpaceWidth=temp;
DDX_Text(&dxOut,IDC_SPACE_WIDTH,m_strSpaceWidth);
if (_tstof(m_strSpaceWidth)<_tstof(m_strStairWidth)*2)
{
m_strStairWidth.Format(_T("%.2f"),_tstof(m_strSpaceWidth)/2);
DDX_Text(&dxOut,IDC_STAIR_WIDTH,m_strStairWidth);
}
2026-10-04 00:04:20 +08:00
//梯井宽度
2026-09-28 15:28:50 +08:00
m_strStairWellWidth=Dist2Str(::_tstof(m_strSpaceWidth)-2.0*::_tstof(m_strStairWidth));
DDX_Text(&dxOut,IDC_STATIC_WELLWID,m_strStairWellWidth);
}
else
{
if (bReportError)
{
2026-10-04 00:04:20 +08:00
::AfxMessageBox(_T("梯间宽不正确!"));
2026-09-28 15:28:50 +08:00
DDX_Text(&dxOut,IDC_SPACE_WIDTH,m_strSpaceWidth);
pEdit->SetFocus();
}
bUpdating=FALSE;
return false;
}
}
break;
case IDC_STEP_HEIGHT:
2026-10-04 00:04:20 +08:00
{//踏步高
2026-09-28 15:28:50 +08:00
if (::_tstof(temp)<_DIST_SNAP|| (int)(::_tstof(m_strStairHeight)/::_tstof(temp))<2 ||temp==_T(""))
{
bUpdating=FALSE;
if (bReportError)
{
2026-10-04 00:04:20 +08:00
::AfxMessageBox(_T("踏步高不正确!"));
2026-09-28 15:28:50 +08:00
DDX_Text(&dxOut,IDC_STEP_HEIGHT,m_strStepHeight);
pEdit->SetFocus();
}
return false;
}
int num=(int)(_tstof(m_strStairHeight)/_tstof(temp)+0.5);
if (_tstof(temp)>0&&num>1) {
m_nStepNum=num;
m_strStepHeight.Format(_T("%.2f"),_tstof(m_strStairHeight)/m_nStepNum);
DDX_Text(&dxOut,IDC_STEP_NUM,m_nStepNum);
if (bReportError)
2026-10-04 00:04:20 +08:00
DDX_Text(&dxOut,IDC_STEP_HEIGHT,m_strStepHeight);//自动调整
2026-09-28 15:28:50 +08:00
UpdateImage();
}
if (bReportError){}
}
break;
case IDC_STEP_WIDTH:
2026-10-04 00:04:20 +08:00
{//踏步宽度
2026-09-28 15:28:50 +08:00
if (::_tstof(temp)>_DIST_SNAP && temp!=_T(""))
{
m_strStepWidth=temp;
DDX_Text(&dxOut,IDC_STEP_WIDTH,m_strStepWidth);
m_strStairLength=Dist2Str(_tstof(temp)*(m_bAsAscent? m_nStepNum : m_nStepNum-1));
DDX_Text(&dxOut,IDC_STAIR_LENGTH,m_strStairLength);
}
else
{
if (bReportError)
{
2026-10-04 00:04:20 +08:00
::AfxMessageBox(_T("踏步宽度不正确!"));
2026-09-28 15:28:50 +08:00
DDX_Text(&dxOut,IDC_STEP_WIDTH,m_strStepWidth);
pEdit->SetFocus();
}
bUpdating=FALSE;
return false;
}
}
break;
case IDC_STEP_NUM:
2026-10-04 00:04:20 +08:00
{//踏步数目
2026-09-28 15:28:50 +08:00
if (::_ttoi(temp)<2)
{
if (bReportError)
{
2026-10-04 00:04:20 +08:00
::AfxMessageBox(_T("踏步数目不正确!"));
2026-09-28 15:28:50 +08:00
DDX_Text(&dxOut,IDC_STEP_NUM,m_nStepNum);
pEdit->SetFocus();
}
bUpdating=FALSE;
return false;
}
2026-10-04 00:04:20 +08:00
//对剖切步数的控制
2026-09-28 15:28:50 +08:00
m_nStepNum=::_ttoi(temp);
m_strStepHeight.Format(_T("%.2f"),_tstof(m_strStairHeight)/m_nStepNum);
DDX_Text(&dxOut,IDC_STEP_HEIGHT,m_strStepHeight);
m_iSectStepNum=m_nStepNum/2;
DDX_Text(&dxOut,IDC_POUSTEP_NUM,m_iSectStepNum);
if (m_iSectStepNum>m_nStepNum)
{
m_iSectStepNum=m_nStepNum/2 +1;
DDX_Text(&dxOut,IDC_POUSTEP_NUM,m_iSectStepNum);
}
DDX_Text(&dxOut,IDC_STEP_NUM,m_nStepNum);
spin.SetRange(1,m_nStepNum);
if (bReportError){}
}
break;
case IDC_RAIL_OUTDIS:
2026-10-04 00:04:20 +08:00
{//扶手伸出距离
2026-09-28 15:28:50 +08:00
if (::_tstof(temp)*2<-(::_tstof(m_strStepWidth))*m_nStepNum)
{
if (bReportError)
{
2026-10-04 00:04:20 +08:00
::AfxMessageBox(_T("扶手伸出距离不正确!"));
2026-09-28 15:28:50 +08:00
DDX_Text(&dxOut,IDC_RAIL_OUTDIS,m_strRailOutDis);
pEdit->SetFocus();
}
bUpdating=FALSE;
return false;
}
m_strRailOutDis=temp;
/*if (CheckENChange(IDC_RAIL_OUTDIS,temp))
return false;*/
DDX_Text(&dxOut,IDC_RAIL_OUTDIS,m_strRailOutDis);
if (bReportError){}
}
break;
case IDC_RAIL_HEIGHT:
2026-10-04 00:04:20 +08:00
{//扶手高度
2026-09-28 15:28:50 +08:00
if (::_tstof(temp)<_DIST_SNAP)
{
if (bReportError)
{
2026-10-04 00:04:20 +08:00
::AfxMessageBox(_T("扶手高度不正确!"));
2026-09-28 15:28:50 +08:00
DDX_Text(&dxOut,IDC_RAIL_HEIGHT,m_strRailHeight);
pEdit->SetFocus();
}
bUpdating=FALSE;
return false;
}
m_strRailHeight=temp;
DDX_Text(&dxOut,IDC_RAIL_HEIGHT,m_strRailHeight);
if (bReportError){}
}
break;
case IDC_RAIL_WIDTH:
2026-10-04 00:04:20 +08:00
{//扶手宽度
2026-09-28 15:28:50 +08:00
if (::_tstof(temp)<_DIST_SNAP||::_tstof(temp)*2>::_tstof(m_strStairWidth))
{
if (bReportError)
{
2026-10-04 00:04:20 +08:00
::AfxMessageBox(_T("扶手宽度不正确!"));
2026-09-28 15:28:50 +08:00
DDX_Text(&dxOut,IDC_RAIL_WIDTH,m_strRailWidth);
pEdit->SetFocus();
}
bUpdating=FALSE;
return false;
}
m_strRailWidth=temp;
DDX_Text(&dxOut,IDC_RAIL_WIDTH,m_strRailWidth);
if (bReportError){}
}
break;
case IDC_RAIL_DISTTOSIDE:
2026-10-04 00:04:20 +08:00
{//扶手距边
2026-09-28 15:28:50 +08:00
if ((-::_tstof(temp)*2>::_tstof(m_strSpaceWidth)-2.0*::_tstof(m_strStairWidth)
||::_tstof(temp)*2>::_tstof(m_strStairWidth)))
{
if (bReportError)
{
2026-10-04 00:04:20 +08:00
::AfxMessageBox(_T("扶手距边不正确!"));
2026-09-28 15:28:50 +08:00
DDX_Text(&dxOut,IDC_RAIL_DISTTOSIDE,m_strRailDistToSide);
pEdit->SetFocus();
}
bUpdating=FALSE;
return false;
}
m_strRailDistToSide=temp;
DDX_Text(&dxOut,IDC_RAIL_DISTTOSIDE,m_strRailDistToSide);
if (bReportError){}
}
break;
case IDC_POUSTEP_NUM:
2026-10-04 00:04:20 +08:00
{//剖切步数
2026-09-28 15:28:50 +08:00
if (::_tstof(temp)<1||::_tstof(temp)>m_nStepNum)
{
if (bReportError)
{
2026-10-04 00:04:20 +08:00
::AfxMessageBox(_T("剖切步数不正确"));
2026-09-28 15:28:50 +08:00
DDX_Text(&dxOut,IDC_POUSTEP_NUM,m_iSectStepNum);
pEdit->SetFocus();
}
bUpdating=FALSE;
return false;
}
spin.SetRange(1,m_nStepNum);
m_iSectStepNum =::_ttoi(temp);
DDX_Text(&dxOut,IDC_POUSTEP_NUM,m_iSectStepNum);
if (bReportError){}
}
break;
case IDC_STAIR_HEIGHTCOMBOX:
{
// static CString strTemp;
// strTemp=m_strStairHeight;
// CDataExchange dxIn(this,TRUE);
// DDX_CBString(&dxIn,IDC_STAIR_HEIGHTCOMBOX,m_strStairHeight);
// m_ctrlStairHeight.GetLBText(m_ctrlStairHeight.GetCurSel(),temp);
// if (::_tstof(temp)<0 || temp=="")
// {
// if (bReportError)
// {
2026-10-04 00:04:20 +08:00
// ::AfxMessageBox(_T("楼梯高度不正确"));
2026-09-28 15:28:50 +08:00
// m_strStairHeight.Format(_T("%.2f"),_tstof(m_strStepHeight)*m_nStepNum);
// DDX_Text(&dxOut,IDC_STAIR_HEIGHTCOMBOX,m_strStairHeight);
// pEdit->SetFocus();
// }
//
// bUpdating=FALSE;
// return false;
// }
//
// m_strStairHeight=temp;
// DDX_Text(&dxOut,IDC_STAIR_HEIGHTCOMBOX,m_strStairHeight);
// m_nStepNum=(int)(_tstof(m_strStairHeight)/_tstof(m_strStepHeight)+0.5);
// DDX_Text(&dxOut,IDC_STEP_NUM,m_nStepNum);
// m_iSectStepNum=m_nStepNum/2;
// DDX_Text(&dxOut,IDC_POUSTEP_NUM,m_iSectStepNum);
// m_strStepHeight.Format(_T("%.2f"),::_tstof(m_strStairHeight)/m_nStepNum);
// DDX_Text(&dxOut,IDC_STEP_HEIGHT,m_strStepHeight);
2026-10-04 00:04:20 +08:00
if (_tstof(temp)>=2.0*_tstof(m_strStepHeight)-_DIST_SNAP && ::_tstof(temp)<=10000) {//最少当前2踏步高
2026-09-28 15:28:50 +08:00
m_strStairHeight=temp;
DDX_Text(&dxOut,IDC_STAIR_HEIGHTCOMBOX,m_strStairHeight);
m_nStepNum=(int)(_tstof(m_strStairHeight)/_tstof(m_strStepHeight)+0.5);
DDX_Text(&dxOut,IDC_STEP_NUM,m_nStepNum);
m_strStepHeight.Format(_T("%.2f"),(_tstof(m_strStairHeight)/m_nStepNum));
DDX_Text(&dxOut,IDC_STEP_HEIGHT,m_strStepHeight);
if (m_iSectStepNum>m_nStepNum)
{
m_iSectStepNum = int(m_nStepNum/2);
DDX_Text(&dxOut,IDC_POUSTEP_NUM,m_iSectStepNum);
}
UpdateImage();
}
else
{
if (bReportError)
{
2026-10-04 00:04:20 +08:00
::AfxMessageBox(_T("楼梯高度不正确"));
2026-09-28 15:28:50 +08:00
m_strStairHeight.Format(_T("%.2f"),_tstof(m_strStepHeight)*m_nStepNum);
DDX_CBString(&dxOut,IDC_STAIR_HEIGHTCOMBOX,m_strStairHeight);
pEdit->SetFocus();
}
bUpdating=false;
return false;
}
}
break;
default:
break;
}
bUpdating=FALSE;
UpdateImage();
return false;
}
void CCrossStairDlg::OnControlRange(UINT ctrlID)
{
UpdateSel();
}
void CCrossStairDlg::UpdateSel()
{
2026-10-04 00:04:20 +08:00
//楼层处理
2026-09-28 15:28:50 +08:00
CBaseStairDlg::UpdateSel();
UpdateData();
switch(m_iSelectFloor)
{
case 0:
{
this->GetDlgItem(IDC_HAS_CELLAR)->EnableWindow(TRUE);
this->GetDlgItem(IDC_HAS_ROOF)->EnableWindow(FALSE);
this->GetDlgItem(IDC_LEFT_UP)->EnableWindow(FALSE);
this->GetDlgItem(IDC_RIGHT_UP)->EnableWindow(FALSE);
if (m_bHasCellar)
{
this->GetDlgItem(IDC_LEFT_DOWN)->EnableWindow(TRUE);
this->GetDlgItem(IDC_RIGHT_DOWN)->EnableWindow(TRUE);
m_iLRDown=(m_bLeftDown==FALSE)?1:2;
}
else
{
this->GetDlgItem(IDC_LEFT_DOWN)->EnableWindow(FALSE);
this->GetDlgItem(IDC_RIGHT_DOWN)->EnableWindow(FALSE);
m_iLRDown=0;
}
}
break;
case 1:
{
this->GetDlgItem(IDC_HAS_CELLAR)->EnableWindow(FALSE);
this->GetDlgItem(IDC_LEFT_DOWN)->EnableWindow(FALSE);
this->GetDlgItem(IDC_RIGHT_DOWN)->EnableWindow(FALSE);
this->GetDlgItem(IDC_HAS_ROOF)->EnableWindow(FALSE);
this->GetDlgItem(IDC_LEFT_UP)->EnableWindow(FALSE);
this->GetDlgItem(IDC_RIGHT_UP)->EnableWindow(FALSE);
m_iLRDown=0;
m_iLRUp=0;
}
break;
case 2:
{
this->GetDlgItem(IDC_HAS_CELLAR)->EnableWindow(FALSE);
this->GetDlgItem(IDC_LEFT_DOWN)->EnableWindow(FALSE);
this->GetDlgItem(IDC_RIGHT_DOWN)->EnableWindow(FALSE);
this->GetDlgItem(IDC_HAS_ROOF)->EnableWindow(TRUE);
if (m_bHasOutRoof)
{
this->GetDlgItem(IDC_LEFT_UP)->EnableWindow(TRUE);
this->GetDlgItem(IDC_RIGHT_UP)->EnableWindow(TRUE);
m_iLRUp=(m_bLeftUp==FALSE)?1:2;
m_iLRDown=m_iLRUp;
}
else
{
this->GetDlgItem(IDC_LEFT_UP)->EnableWindow(FALSE);
this->GetDlgItem(IDC_RIGHT_UP)->EnableWindow(FALSE);
m_iLRUp=0;
m_iLRDown=0;
}
}
break;
default:
break;
}
2026-10-04 00:04:20 +08:00
//以下控制外侧扶手和自动生成栏杆的操作
2026-09-28 15:28:50 +08:00
this->GetDlgItem(IDC_RAIL_AUTO)->EnableWindow(m_bRailOut);
2026-10-04 00:04:20 +08:00
//以下对2D or 3D的显示
2026-09-28 15:28:50 +08:00
if (m_bNeed2D && m_bNeed3D) m_iViewCtrl=0;
else if (!m_bNeed2D && m_bNeed3D) m_iViewCtrl=2;
else if (m_bNeed2D && !m_bNeed3D) m_iViewCtrl=1;
else m_iViewCtrl=0;
this->GetDlgItem(IDC_INSIDERAIL)->EnableWindow(m_bHasInsideHandRail);
2026-10-04 00:04:20 +08:00
// 修改描述:各种楼梯对话框中的“标注上楼方向”一项
// 应在“需要2D”一项勾选后才变成可选择状态。(2097)
// 修改人,修改时间:Zyu modify on 100325
2026-09-28 15:28:50 +08:00
GetDlgItem(IDC_HAS_ARROW)->EnableWindow(m_bNeed2D);
2026-10-04 00:04:20 +08:00
//梯井宽度计算
2026-09-28 15:28:50 +08:00
m_strStairWellWidth=Dist2Str(::_tstof(m_strSpaceWidth)-2*::_tstof(m_strStairWidth));
UpdateData(FALSE);
UpdateImage();
return;
}
2026-10-04 00:04:20 +08:00
//事件处理函数
2026-09-28 15:28:50 +08:00
void CCrossStairDlg::OnChangeStairHeight()
{
CString temp;
this->GetDlgItem(IDC_STAIR_HEIGHT)->GetWindowText(temp);
if (temp!=_T(""))
{
UpdateEdit(IDC_STAIR_HEIGHT);
}
}
void CCrossStairDlg::OnChangeStairWidth()
{
CString temp;
this->GetDlgItem(IDC_STAIR_WIDTH)->GetWindowText(temp);
if (temp!=_T(""))
{
UpdateEdit(IDC_STAIR_WIDTH);
}
}
void CCrossStairDlg ::OnChangeSpaceWidth()
{
CString temp;
this->GetDlgItem(IDC_SPACE_WIDTH)->GetWindowText(temp);
if (temp!=_T(""))
{
UpdateEdit(IDC_SPACE_WIDTH,false);
}
}
void CCrossStairDlg::OnChangeStepWidth()
{
CString temp;
this->GetDlgItem(IDC_STEP_WIDTH)->GetWindowText(temp);
if (temp!=_T(""))
{
UpdateEdit(IDC_STEP_WIDTH);
}
}
void CCrossStairDlg::OnChangeStepNum()
{
CString temp;
this->GetDlgItem(IDC_STEP_NUM)->GetWindowText(temp);
if (temp!=_T(""))
{
UpdateEdit(IDC_STEP_NUM);
}
}
void CCrossStairDlg::OnKFStepNum()
{
//modiby by xlc on 090317
if (GetFocus()!=GetDlgItem(IDCANCEL))
{
CString strText;
GetDlgItem(IDC_STEP_NUM)->GetWindowText(strText);
if (fabs(_tstof(strText)-m_nStepNum)<_DIST_SNAP)
return;
UpdateEdit(IDC_STEP_NUM,true);
}
}
void CCrossStairDlg::OnChangeStepHeight()
{
// UpdateEdit(IDC_STEP_HEIGHT,false);
}
void CCrossStairDlg::OnKFStepHeight()
{
if (GetFocus()!=GetDlgItem(IDCANCEL))
{
//modiby by xlc on 090317
CString strText;
GetDlgItem(IDC_STEP_HEIGHT)->GetWindowText(strText);
if (fabs(_tstof(strText)-_tstof(m_strStepHeight))<_DIST_SNAP)
return;
UpdateEdit(IDC_STEP_HEIGHT,true);
}
}
void CCrossStairDlg ::OnChangePouNum()
{
CString temp;
this->GetDlgItem(IDC_POUSTEP_NUM)->GetWindowText(temp);
if (temp!=_T(""))
{
UpdateEdit(IDC_POUSTEP_NUM);
}
}
void CCrossStairDlg::OnChangeRailDistoSide()
{
CString temp;
this->GetDlgItem(IDC_RAIL_DISTTOSIDE)->GetWindowText(temp);
if (temp!=_T(""))
{
UpdateEdit(IDC_RAIL_DISTTOSIDE);
}
}
void CCrossStairDlg::OnChangeRailHeight()
{
CString temp;
this->GetDlgItem(IDC_RAIL_HEIGHT)->GetWindowText(temp);
if (temp!=_T(""))
{
UpdateEdit(IDC_RAIL_HEIGHT);
}
}
void CCrossStairDlg::OnChangeRailOutDis()
{
CString temp;
this->GetDlgItem(IDC_RAIL_OUTDIS)->GetWindowText(temp);
if (temp!=_T(""))
{
UpdateEdit(IDC_RAIL_OUTDIS);
}
}
void CCrossStairDlg::OnChangeRailWidth()
{
CString temp;
this->GetDlgItem(IDC_RAIL_WIDTH)->GetWindowText(temp);
if (temp!=_T(""))
{
UpdateEdit(IDC_RAIL_WIDTH);
}
}
void CCrossStairDlg::OnClickRailOut()
{
UpdateData(TRUE);
this->GetDlgItem(IDC_RAIL_AUTO)->EnableWindow(m_bRailOut);
UpdateImage();
}
2026-10-04 00:04:20 +08:00
//楼梯高度的ComBox的处理
2026-09-28 15:28:50 +08:00
void CCrossStairDlg::OnSelChangeStairHeightComBox()
{
UpdateEdit(IDC_STAIR_HEIGHTCOMBOX);
}
void CCrossStairDlg::OnChangeStairHeightComBox()
{
// CString temp;
// this->GetDlgItem(IDC_STAIR_HEIGHTCOMBOX)->GetWindowText(temp);
// if (temp!=_T(""))
// {
// UpdateEdit(IDC_STAIR_HEIGHTCOMBOX);
// }
}
void CCrossStairDlg::OnKFStairHeight()
2026-10-04 00:04:20 +08:00
{//楼层高度失去焦点的操作
2026-09-28 15:28:50 +08:00
if (GetFocus()!=GetDlgItem(IDCANCEL))
{
CString strText;
GetDlgItem(IDC_STAIR_HEIGHTCOMBOX)->GetWindowText(strText);
if (fabs(_tstof(strText)-_tstof(m_strStairHeight))<_DIST_SNAP)
return;
UpdateEdit(IDC_STAIR_HEIGHTCOMBOX,true);
}
}
void CCrossStairDlg::OnClickHasCellar()
2026-10-04 00:04:20 +08:00
{//有地下室
2026-09-28 15:28:50 +08:00
UpdateData(TRUE);
if (m_bHasCellar)
{
this->GetDlgItem(IDC_LEFT_DOWN)->EnableWindow(TRUE);
this->GetDlgItem(IDC_RIGHT_DOWN)->EnableWindow(TRUE);
m_iLRDown=(m_bLeftDown==FALSE)?1:2;
}
else
{
this->GetDlgItem(IDC_LEFT_DOWN)->EnableWindow(FALSE);
this->GetDlgItem(IDC_RIGHT_DOWN)->EnableWindow(FALSE);
m_iLRDown=0;
}
UpdateImage();
}
void CCrossStairDlg::OnClickHasRoof()
2026-10-04 00:04:20 +08:00
{//有出屋顶
2026-09-28 15:28:50 +08:00
UpdateData(TRUE);
if (m_bHasOutRoof)
{
this->GetDlgItem(IDC_LEFT_UP)->EnableWindow(TRUE);
this->GetDlgItem(IDC_RIGHT_UP)->EnableWindow(TRUE);
m_iLRUp=(m_bLeftUp==FALSE)?1:2;
m_iLRDown=m_iLRUp;
}
else
{
this->GetDlgItem(IDC_LEFT_UP)->EnableWindow(FALSE);
this->GetDlgItem(IDC_RIGHT_UP)->EnableWindow(FALSE);
m_iLRUp=0;
m_iLRDown=0;
}
UpdateImage();
}
BOOL CCrossStairDlg::CheckENChange(UINT ctrlID,const CString pStr)
{
CString temp;
this->GetDlgItemText(ctrlID,temp);
if (temp==pStr)
{
return FALSE;
}
return TRUE;
}
void CCrossStairDlg::OnClose()
{
GetDlgItem(IDCANCEL)->SetFocus();
CBaseStairDlg::OnClose();
}
void CCrossStairDlg::OnKFStairWidth()
{
if (GetFocus()!=GetDlgItem(IDCANCEL))
{
//modiby by xlc on 090317
CString strText;
GetDlgItem(IDC_STAIR_WIDTH)->GetWindowText(strText);
if (fabs(_tstof(strText)-_tstof(m_strStairWidth))<_DIST_SNAP)
return;
UpdateEdit(IDC_STAIR_WIDTH,true);
}
}
void CCrossStairDlg ::OnKFSpaceWidth()
{
if (GetFocus()!=GetDlgItem(IDCANCEL))
{
//modiby by xlc on 090317
CString strText;
GetDlgItem(IDC_SPACE_WIDTH)->GetWindowText(strText);
if (fabs(_tstof(strText)-_tstof(m_strSpaceWidth))<_DIST_SNAP)
return;
UpdateEdit(IDC_SPACE_WIDTH,true);
}
}
void CCrossStairDlg::OnKFStepWidth()
{
if (GetFocus()!=GetDlgItem(IDCANCEL))
{
//modiby by xlc on 090317
CString strText;
GetDlgItem(IDC_STEP_WIDTH)->GetWindowText(strText);
if (fabs(_tstof(strText)-_tstof(m_strStepWidth))<_DIST_SNAP)
return;
UpdateEdit(IDC_STEP_WIDTH,true);
}
}
void CCrossStairDlg ::OnKFPouNum()
{
if (GetFocus()!=GetDlgItem(IDCANCEL))
{
//modiby by xlc on 090317
CString strText;
GetDlgItem(IDC_POUSTEP_NUM)->GetWindowText(strText);
if (fabs(_tstof(strText)-m_iSectStepNum)<_DIST_SNAP)
return;
UpdateEdit(IDC_POUSTEP_NUM,true);
}
}
void CCrossStairDlg::OnKFRailDistoSide()
{
if (GetFocus()!=GetDlgItem(IDCANCEL))
{
//modiby by xlc on 090317
CString strText;
GetDlgItem(IDC_RAIL_DISTTOSIDE)->GetWindowText(strText);
if (fabs(_tstof(strText)-_tstof(m_strRailDistToSide))<_DIST_SNAP)
return;
UpdateEdit(IDC_RAIL_DISTTOSIDE,true);
}
}
void CCrossStairDlg::OnKFRailHeight()
{
if (GetFocus()!=GetDlgItem(IDCANCEL))
{
//modiby by xlc on 090317
CString strText;
GetDlgItem(IDC_RAIL_HEIGHT)->GetWindowText(strText);
if (fabs(_tstof(strText)-_tstof(m_strRailHeight))<_DIST_SNAP)
return;
UpdateEdit(IDC_RAIL_HEIGHT,true);
}
}
void CCrossStairDlg::OnKFRailOutDis()
{
if (GetFocus()!=GetDlgItem(IDCANCEL))
{
//modiby by xlc on 090317
CString strText;
GetDlgItem(IDC_RAIL_OUTDIS)->GetWindowText(strText);
if (fabs(_tstof(strText)-_tstof(m_strRailOutDis))<_DIST_SNAP)
return;
UpdateEdit(IDC_RAIL_OUTDIS,true);
}
}
void CCrossStairDlg::OnKFRailWidth()
{
if (GetFocus()!=GetDlgItem(IDCANCEL))
{
//modiby by xlc on 090317
CString strText;
GetDlgItem(IDC_RAIL_WIDTH)->GetWindowText(strText);
if (fabs(_tstof(strText)-_tstof(m_strRailWidth))<_DIST_SNAP)
return;
UpdateEdit(IDC_RAIL_WIDTH,true);
}
}