238 lines
6.2 KiB
C++
238 lines
6.2 KiB
C++
#include "stdafx.h"
|
|
#include "JCXCDlg.h"
|
|
#include "CCSYDlg.h"
|
|
#include "AecDbEarthWorm.h"
|
|
#include "KTCADUtilityEx.h"
|
|
#include "UITools.h"
|
|
#include "GLJCDlg.h"
|
|
#include "JcxcXgpdDLG.h"
|
|
|
|
IMPLEMENT_DYNAMIC(CJCXCDlg, CBaseDialog)
|
|
|
|
CJCXCDlg::CJCXCDlg(CWnd* pParent /*=NULL*/)
|
|
: CBaseDialog(CJCXCDlg::IDD, _T("JCXC"), IDC_STATIC_FRM, pParent)
|
|
, m_fL(0)
|
|
, m_fL1(0)
|
|
, m_fP1(0)
|
|
, m_fW1(0)
|
|
, m_fH1(0)
|
|
, m_fP2(0)
|
|
, m_fL2(0)
|
|
, m_fH(0)
|
|
, m_fG(0)
|
|
, m_fE(0)
|
|
, m_fW2(0)
|
|
, m_fH2(0)
|
|
, m_fW3(0)
|
|
, m_fH4(0)
|
|
, m_iJSKPos1(0)
|
|
, m_iJSKPos2(0) { }
|
|
|
|
CJCXCDlg::~CJCXCDlg() { }
|
|
|
|
void CJCXCDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CBaseDialog::DoDataExchange(pDX);
|
|
DDX_Text(pDX, IDC_EDIT1, m_fL);
|
|
DDV_MinMaxFloat(pDX, m_fL, 0, 1000);
|
|
DDX_Text(pDX, IDC_EDIT3, m_fL1);
|
|
DDV_MinMaxFloat(pDX, m_fL1, 0, 1000);
|
|
DDX_Text(pDX, IDC_EDIT4, m_fP1);
|
|
DDV_MinMaxFloat(pDX, m_fP1, 0, 1000);
|
|
DDX_Text(pDX, IDC_EDIT5, m_fW1);
|
|
DDV_MinMaxFloat(pDX, m_fW1, 0, 1000);
|
|
DDX_Text(pDX, IDC_EDIT6, m_fH1);
|
|
DDV_MinMaxFloat(pDX, m_fH1, 0, 1000);
|
|
DDX_Text(pDX, IDC_EDIT7, m_fP2);
|
|
DDV_MinMaxFloat(pDX, m_fP2, 0, 1000);
|
|
DDX_Text(pDX, IDC_EDIT8, m_fL2);
|
|
DDV_MinMaxFloat(pDX, m_fL2, 0, 1000);
|
|
DDX_Text(pDX, IDC_EDIT9, m_fH);
|
|
DDV_MinMaxFloat(pDX, m_fH, 0, 1000);
|
|
DDX_Text(pDX, IDC_EDIT14, m_fG);
|
|
DDV_MinMaxFloat(pDX, m_fG, 0, 1000);
|
|
DDX_Text(pDX, IDC_EDIT15, m_fE);
|
|
DDV_MinMaxFloat(pDX, m_fE, 0, 1000);
|
|
DDX_Text(pDX, IDC_EDIT16, m_fW2);
|
|
DDV_MinMaxFloat(pDX, m_fW2, 0, 1000);
|
|
DDX_Text(pDX, IDC_EDIT17, m_fH2);
|
|
DDV_MinMaxFloat(pDX, m_fH2, 0, 1000);
|
|
DDX_Text(pDX, IDC_EDIT18, m_fW3);
|
|
DDV_MinMaxFloat(pDX, m_fW3, 0, 1000);
|
|
DDX_Text(pDX, IDC_EDIT19, m_fH4);
|
|
DDV_MinMaxFloat(pDX, m_fH4, 0, 1000);
|
|
DDX_Radio(pDX, IDC_RADIO1, m_iJSKPos1);
|
|
DDV_MinMaxInt(pDX, m_iJSKPos1, 0, 3);
|
|
DDX_Radio(pDX, IDC_RADIO8, m_iJSKPos2);
|
|
DDV_MinMaxInt(pDX, m_iJSKPos2, 0, 3);
|
|
DDX_Control(pDX, IDC_LIST1, m_LstCtrl);
|
|
}
|
|
|
|
|
|
BOOL CJCXCDlg::OnInitDialog()
|
|
{
|
|
CBaseDialog::OnInitDialog();
|
|
|
|
m_fL = m_data.fNodeDef[0];
|
|
m_fL1 = m_data.fNodeDef[1];
|
|
m_fP1 = m_data.fNodeDef[2];
|
|
m_fW1 = m_data.fNodeDef[3];
|
|
m_fH1 = m_data.fNodeDef[4];
|
|
|
|
m_fP2 = m_data.fNodeDef[8];
|
|
m_fL2 = m_data.fNodeDef[9];
|
|
m_fH = m_data.fNodeDef[10];
|
|
|
|
m_fG = m_data.fNodeDef[11];
|
|
m_fE = m_data.fNodeDef[13];
|
|
m_iJSKPos1 = (int)m_data.fNodeDef[14];
|
|
m_fW2 = m_data.fNodeDef[15];
|
|
m_fH2 = m_data.fNodeDef[16];
|
|
m_iJSKPos2 = (int)m_data.fNodeDef[17];
|
|
m_fW3 = m_data.fNodeDef[18];
|
|
m_fH4 = m_data.fNodeDef[19];
|
|
|
|
InitLstCtrl();
|
|
RefreshLstCtrl();
|
|
|
|
UpdateData(FALSE);
|
|
return TRUE;
|
|
}
|
|
|
|
BEGIN_MESSAGE_MAP(CJCXCDlg, CBaseDialog)
|
|
ON_BN_CLICKED(IDC_BUTTON2, &CJCXCDlg::OnBnClickedButton2)
|
|
ON_BN_CLICKED(IDC_BUTTON1, &CJCXCDlg::OnBnClickedButton1)
|
|
ON_BN_CLICKED(IDOK, &CJCXCDlg::OnBnClickedOk)
|
|
ON_BN_CLICKED(IDCANCEL, &CJCXCDlg::OnBnClickedCancel)
|
|
ON_BN_CLICKED(IDC_BUTTON4, &CJCXCDlg::OnBnClickedButton4)
|
|
ON_NOTIFY(NM_DBLCLK, IDC_LIST1, &CJCXCDlg::OnNMDblclkList1)
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
void CJCXCDlg::OnBnClickedButton2()
|
|
{
|
|
CCCSYDlg dlg;
|
|
dlg.SetBmpFileName(_T("xx.bmp"));
|
|
dlg.DoModal();
|
|
}
|
|
|
|
|
|
void CJCXCDlg::OnBnClickedButton1()
|
|
{
|
|
CCCSYDlg dlg;
|
|
dlg.SetBmpFileName(_T("jcxc.bmp"));
|
|
dlg.DoModal();
|
|
}
|
|
|
|
|
|
void CJCXCDlg::OnBnClickedOk()
|
|
{
|
|
UpdateData(TRUE);
|
|
AecDbEarthWorm worm;
|
|
worm.SetCrossSectionScr(m_sCrossSectionScr);
|
|
int count = worm.GetRoomCount();
|
|
if (GetIdxOfRoom() != 0 && GetIdxOfRoom() != count - 1)
|
|
{
|
|
AfxMessageBox(_T("请选择侧边舱体。"));
|
|
return;
|
|
}
|
|
m_data.fNodeDef[0] = m_fL;
|
|
m_data.fNodeDef[1] = m_fL1;
|
|
m_data.fNodeDef[2] = m_fP1;
|
|
m_data.fNodeDef[3] = m_fW1;
|
|
m_data.fNodeDef[4] = m_fH1;
|
|
|
|
m_data.fNodeDef[8] = m_fP2;
|
|
m_data.fNodeDef[9] = m_fL2;
|
|
m_data.fNodeDef[10] = m_fH;
|
|
|
|
m_data.fNodeDef[11] = m_fG;
|
|
m_data.fNodeDef[12] = GetIdxOfRoom();
|
|
m_data.fNodeDef[13] = m_fE;
|
|
m_data.fNodeDef[14] = m_iJSKPos1;
|
|
m_data.fNodeDef[15] = m_fW2;
|
|
m_data.fNodeDef[16] = m_fH2;
|
|
m_data.fNodeDef[17] = m_iJSKPos2;
|
|
m_data.fNodeDef[18] = m_fW3;
|
|
m_data.fNodeDef[19] = m_fH4;
|
|
|
|
CBaseDialog::OnOK();
|
|
|
|
if (GetParent() && GetParent()->IsKindOf(RUNTIME_CLASS(CTabCtrl)))
|
|
((CGLJCDlg*)(GetParent()->GetParent()))->EndDialog(IDOK);
|
|
}
|
|
|
|
|
|
void CJCXCDlg::OnBnClickedCancel()
|
|
{
|
|
CBaseDialog::OnCancel();
|
|
if (GetParent() && GetParent()->IsKindOf(RUNTIME_CLASS(CTabCtrl)))
|
|
((CGLJCDlg*)(GetParent()->GetParent()))->EndDialog(IDOK);
|
|
}
|
|
|
|
void CJCXCDlg::OnBnClickedButton4()
|
|
{
|
|
POSITION ps = m_LstCtrl.GetFirstSelectedItemPosition();
|
|
int nRet = m_LstCtrl.GetNextSelectedItem(ps);
|
|
|
|
if (nRet == -1)
|
|
{
|
|
AfxMessageBox(_T("请选择一行数据。"));
|
|
return;
|
|
}
|
|
CString sL = m_LstCtrl.GetItemText(nRet, 1);
|
|
CString sH = m_LstCtrl.GetItemText(nRet, 2);
|
|
CString sW1 = m_LstCtrl.GetItemText(nRet, 3);
|
|
CString sW2 = m_LstCtrl.GetItemText(nRet, 4);
|
|
|
|
CJcxcXgpdDLG dlg;
|
|
dlg.m_fL = TypeConvert::s2f(sL);
|
|
dlg.m_fH = TypeConvert::s2f(sH);
|
|
dlg.m_fW1 = TypeConvert::s2f(sW1);
|
|
dlg.m_fW2 = TypeConvert::s2f(sW2);
|
|
dlg.DoModal();
|
|
|
|
int idx = 20 + 4 * nRet;
|
|
m_data.fNodeDef[idx++] = AS_MUNITF(dlg.m_fL);
|
|
m_data.fNodeDef[idx++] = AS_MUNITF(dlg.m_fH);
|
|
m_data.fNodeDef[idx++] = AS_MUNITF(dlg.m_fW1);
|
|
m_data.fNodeDef[idx++] = AS_MUNITF(dlg.m_fW2);
|
|
|
|
RefreshLstCtrl();
|
|
}
|
|
|
|
void CJCXCDlg::InitLstCtrl()
|
|
{
|
|
m_LstCtrl.InsertColumn(0, _T("舱室序号"), LVCFMT_LEFT, 100);
|
|
m_LstCtrl.InsertColumn(1, _T("距舱室左侧距离(毫米)"), LVCFMT_LEFT, 150);
|
|
m_LstCtrl.InsertColumn(2, _T("踏步高度(毫米)"), LVCFMT_LEFT, 110);
|
|
m_LstCtrl.InsertColumn(3, _T("踏步宽度(毫米)"), LVCFMT_LEFT, 110);
|
|
m_LstCtrl.InsertColumn(4, _T("坡道宽(毫米)"), LVCFMT_LEFT, 100);
|
|
m_LstCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT);
|
|
}
|
|
|
|
void CJCXCDlg::RefreshLstCtrl()
|
|
{
|
|
m_LstCtrl.DeleteAllItems();
|
|
|
|
AecDbEarthWorm worm;
|
|
worm.SetCrossSectionScr(m_sCrossSectionScr);
|
|
int count = worm.GetRoomCount();
|
|
int nRow(0);
|
|
|
|
for (int i = 20, j = 0; i < 20 + 4 * count && i < 64; ++j)
|
|
{
|
|
nRow = m_LstCtrl.InsertItem(0, TypeConvert::i2s(j + 1));
|
|
m_LstCtrl.SetItemText(nRow, 1, TypeConvert::f2s(AS_M2MM(m_data.fNodeDef[i++])));
|
|
m_LstCtrl.SetItemText(nRow, 2, TypeConvert::f2s(AS_M2MM(m_data.fNodeDef[i++])));
|
|
m_LstCtrl.SetItemText(nRow, 3, TypeConvert::f2s(AS_M2MM(m_data.fNodeDef[i++])));
|
|
m_LstCtrl.SetItemText(nRow, 4, TypeConvert::f2s(AS_M2MM(m_data.fNodeDef[i++])));
|
|
}
|
|
}
|
|
|
|
|
|
void CJCXCDlg::OnNMDblclkList1(NMHDR *pNMHDR, LRESULT *pResult)
|
|
{
|
|
OnBnClickedButton4();
|
|
*pResult = 0;
|
|
} |