Files
envi-code/SourceCode/Code2026/Pool3dCmd/MRLTDlg.cpp
T
2026-09-28 15:28:50 +08:00

281 lines
6.2 KiB
C++

#include "stdafx.h"
#include "MRLTDlg.h"
#include "AecDbMRPLineStair.h"
IMPLEMENT_DYNAMIC(CMRLTDlg, CDialog)
CMRLTDlg::CMRLTDlg(CWnd *pParent /*=NULL*/)
: CDialog(CMRLTDlg::IDD, pParent)
, m_dSteepW(250)
, m_dSteepH(160)
, m_dStairW(1200)
, m_dRestPtW(1200)
, m_dSbThick(150)
, m_dStiffnW(250)
, m_dStiffnH(286)
, m_dBarH(923)
, m_dBarSp(300)
, m_dGarSize0(40)
, m_dGarSize1(60)
, m_dBarSize0(30)
, m_dBarSize1(30)
, m_nBShape(FALSE)
, m_sBarMat(_T("不锈钢"))
, m_nGShape(FALSE)
, m_dGarExt(60)
, m_dBomEl(0)
, m_sGarMat(_T("不锈钢"))
, m_bStiffn(FALSE)
, m_nGarBarLR(0)
, m_bGBResetPLF(FALSE)
{
m_nSteepSize = 2;
memset(m_nSteeps,0,sizeof(int) * 20);
m_nSteeps[0] = 15;
m_nSteeps[1] = 15;
m_bHasResetPLF = TRUE;
m_bHasGarBar = TRUE;
}
CMRLTDlg::~CMRLTDlg()
{
}
void CMRLTDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX, IDC_EDIT2, m_dSteepW);
DDX_Text(pDX, IDC_EDIT3, m_dSteepH);
DDX_Text(pDX, IDC_EDIT5, m_dStairW);
DDX_Control(pDX, IDC_LIST3, m_wndList);
DDX_Text(pDX, IDC_EDIT14, m_dRestPtW);
DDX_Text(pDX, IDC_EDIT33, m_dSbThick);
DDX_Text(pDX, IDC_EDIT31, m_dStiffnW);
DDX_Text(pDX, IDC_EDIT32, m_dStiffnH);
DDX_Text(pDX, IDC_EDIT16, m_dBarH);
DDX_Text(pDX, IDC_EDIT17, m_dBarSp);
DDX_Text(pDX, IDC_EDIT30, m_dGarSize0);
DDX_Text(pDX, IDC_EDIT28, m_dGarSize1);
DDX_Text(pDX, IDC_EDIT21, m_dBarSize0);
DDX_Text(pDX, IDC_EDIT26, m_dBarSize1);
DDX_Check(pDX, IDC_CHECK7, m_nBShape);
DDX_CBString(pDX, IDC_COMBO7, m_sBarMat);
DDX_Check(pDX, IDC_CHECK6, m_nGShape);
DDX_Text(pDX, IDC_EDIT19, m_dGarExt);
DDX_Text(pDX, IDC_EDIT40, m_dBomEl);
DDX_CBString(pDX, IDC_COMBO4, m_sGarMat);
DDX_Check(pDX, IDC_CHECK2, m_bHasResetPLF);
DDX_Check(pDX, IDC_CHECK8, m_bHasGarBar);
DDX_Check(pDX, IDC_CHECK9, m_bStiffn);
DDX_Check(pDX, IDC_CHECK10, m_bGBResetPLF);
DDX_Radio(pDX, IDC_RADIO1, m_nGarBarLR);
}
BEGIN_MESSAGE_MAP(CMRLTDlg, CDialog)
ON_BN_CLICKED(IDOK, &CMRLTDlg::OnBnClickedOk)
ON_BN_CLICKED(IDC_BUTTON1, &CMRLTDlg::OnBnClickedButton1)
ON_BN_CLICKED(IDC_BUTTON2, &CMRLTDlg::OnBnClickedButton2)
END_MESSAGE_MAP()
BOOL CMRLTDlg::OnInitDialog()
{
CDialog::OnInitDialog();
UpdateData(FALSE);
CBitmap bmp;
if (!bmp.LoadBitmap (IDB_BITMAPPRIV))
{
AfxMessageBox(_T("Can't load bitmap: %x\n"), IDB_BITMAPPRIV);
ASSERT (FALSE);
return FALSE;
}
BITMAP bmpObj;
bmp.GetBitmap (&bmpObj);
UINT nFlags = ILC_COLOR24 | ILC_MASK;
m_imageList.Create (16, bmpObj.bmHeight, nFlags, 0, 0);
m_imageList.Add (&bmp, RGB (255, 0, 0));
m_wndList.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT | LVS_EX_SINGLEROW);
m_wndList.InsertColumn(0,_T("序号"),LVCFMT_LEFT,80);
m_wndList.InsertColumn(1,_T("步数"),LVCFMT_LEFT,120);
m_wndList.SetColumnItemData(1,NULL,ET_Edit);
//默认参数
CString sNo,sTxt;
for (int i = 0;i < m_nSteepSize;i++)
{
sNo.Format(_T("%d"),i+1);
sTxt.Format(_T("%d"),m_nSteeps[i]);
m_wndList.InsertItem(i,sNo);
m_wndList.SetItemText(i,1,sTxt);
}
return TRUE;
}
void CMRLTDlg::SetStairData(MRPLineStair& data)
{
m_dSteepH = data.dSteepH;
m_dSteepW = data.dSteepW;
m_dStairW = data.dStairW;
m_dBomEl = data.dBomEl;
m_dRestPtW = data.dRestPtW;
m_dStiffnW = data.dStiffnW;
m_dStiffnH = data.dStiffnH;
m_dSbThick = data.dSbThick;
m_bStiffn = data.bHasStiffn;
//m_dSideBeamW = data.dSideBeamW;
//m_dSideBeamH = data.dSideBeamH;
m_nSteepSize = data.nSteepSize;
memset(m_nSteeps,0,sizeof(int) * 20);
for (int i = 0;i < m_nSteepSize;i++)
{
m_nSteeps[i] = data.nSteeps[i];
}
m_dBarH = data.dBarH;
m_dGarSize0 = data.dGarSize[0];
m_dGarSize1 = data.dGarSize[1];
m_dGarExt = data.dGarExt;
m_nGShape = data.nGShape;
m_sGarMat = data.szGarMat;
m_dBarSp = data.dBarSp;
m_dBarSize0 = data.dBarSize[0];
m_dBarSize1 = data.dBarSize[1];
m_nBShape = data.nBShape;
m_sBarMat = data.szBarMat;
m_bHasResetPLF = data.bHasResetPLF;
m_bHasGarBar = data.bHasGarBar;
m_nGarBarLR = data.nGarBarLR;
m_bGBResetPLF = data.bGBResetPLF;
}
void CMRLTDlg::GetStairData(MRPLineStair& data) const
{
data.dSteepH = m_dSteepH;
data.dSteepW = m_dSteepW;
data.dStairW = m_dStairW;
data.dBomEl = m_dBomEl;
data.nSteepSize = m_nSteepSize;
for (int i = 0;i < m_nSteepSize;i++)
{
data.nSteeps[i] = m_nSteeps[i];
}
data.dRestPtW = m_dRestPtW;
data.dStiffnW = m_dStiffnW;
data.dStiffnH = m_dStiffnH;
data.dSbThick = m_dSbThick;
//m_dSideBeamW = data.dSideBeamW;
//m_dSideBeamH = data.dSideBeamH;
data.dBarH = m_dBarH;
data.dGarSize[0] = m_dGarSize0;
data.dGarSize[1] = m_dGarSize1;
data.dGarExt = m_dGarExt;
data.bHasStiffn = m_bStiffn;
data.nGShape = m_nGShape;
_tcscpy(data.szGarMat,(LPCTSTR)m_sGarMat);
data.dBarSp = m_dBarSp;
data.dBarSize[0] = m_dBarSize0;
data.dBarSize[1] = m_dBarSize1;
data.nBShape = m_nBShape;
_tcscpy(data.szBarMat,(LPCTSTR)m_sBarMat);
data.bHasResetPLF = m_bHasResetPLF;
data.bHasGarBar = m_bHasGarBar;
data.nGarBarLR = m_nGarBarLR;
data.bGBResetPLF = m_bGBResetPLF;
}
void CMRLTDlg::SetFromId(AcDbObjectId& id)
{
AcDbEntity* pEnt = NULL;
if (Acad::eOk == acdbOpenAcDbEntity(pEnt,id,AcDb::kForRead))
{
AecDbMRPLineStair* pZStair = AecDbMRPLineStair::cast(pEnt);
if (pZStair != NULL)
{
MRPLineStair data;
memset(&data,0,sizeof(MRPLineStair));
pZStair->GetStairData(data);
SetStairData(data);
}
pEnt->close();
}
}
void CMRLTDlg::OnBnClickedOk()
{
UpdateData();
//数据有效性验证
m_nSteepSize = m_wndList.GetItemCount();
for (int i = 0;i < m_nSteepSize;i++)
{
m_nSteeps[i] = _ttoi( m_wndList.GetItemText(i,1) );
}
OnOK();
}
void CMRLTDlg::OnBnClickedButton1()
{
int nNo = 1;
CString sText;
for (int i = 0;i < m_wndList.GetItemCount();i++)
{
sText.Format(_T("%d"),nNo + i);
m_wndList.SetItemText(i,0,sText);
}
sText.Format(_T("%d"),nNo + i);
i = m_wndList.InsertItem(m_wndList.GetItemCount(),sText);
m_wndList.SetItemText(i,1,_T("15"));
}
void CMRLTDlg::OnBnClickedButton2()
{
POSITION ps = m_wndList.GetFirstSelectedItemPosition();
if (ps != NULL)
{
int nItem = m_wndList.GetNextSelectedItem(ps);
if (nItem != -1)
{
m_wndList.DeleteItem(nItem);
int nNo = 1;
CString sText;
for (int i = 0;i < m_wndList.GetItemCount();i++)
{
sText.Format(_T("%d"),nNo + i);
m_wndList.SetItemText(i,0,sText);
}
}
}
}