Files
gjm 164968b62e chore
把非utf8-bom编码的cpp/h文件改为 utf8 bom 编码, msvc识别utf8编码时,如果不是bom格式的,会使用当前cp_oem来解码.
2026-10-04 00:04:20 +08:00

197 lines
5.1 KiB
C++

#include "stdafx.h"
#include "BZJCDlg.h"
#include "uitools.h"
#include "AecDbEarthWorm.h"
#include "JcxcXgpdDLG.h"
IMPLEMENT_DYNAMIC(CBZJCDlg, CBaseDialog)
CBZJCDlg::CBZJCDlg(CWnd* pParent /*=NULL*/)
: CBaseDialog(CBZJCDlg::IDD, _T("BZJC"), -1, pParent)
, m_fP1(.0f)
, m_fP2(.0f)
, m_fP3(.0f)
, m_fP4(.0f)
, m_fP5(.0f)
, m_fP6(.0f)
, m_fMinSize(.0f)
, m_fW2(.0f)
, m_fH2(.0f)
, m_fW3(.0f)
, m_fH3(.0f)
, m_nPos1(0)
, m_nPos2(0) { }
CBZJCDlg::~CBZJCDlg() { }
void CBZJCDlg::DoDataExchange(CDataExchange* pDX)
{
CBaseDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_LIST1, m_LstCtrl);
DDX_Text(pDX, IDC_EDIT7, m_fP1);
DDX_Text(pDX, IDC_EDIT4, m_fP2);
DDX_Text(pDX, IDC_EDIT3, m_fP3);
DDX_Text(pDX, IDC_EDIT5, m_fP4);
DDX_Text(pDX, IDC_EDIT6, m_fP5);
DDX_Text(pDX, IDC_EDIT1, m_fP6);
DDX_Text(pDX, IDC_EDIT2, m_fMinSize);
DDX_Radio(pDX, IDC_RADIO1, m_nPos1);
DDX_Radio(pDX, IDC_RADIO8, m_nPos2);
DDX_Text(pDX, IDC_EDIT16, m_fW2);
DDX_Text(pDX, IDC_EDIT17, m_fH2);
DDX_Text(pDX, IDC_EDIT18, m_fW3);
DDX_Text(pDX, IDC_EDIT19, m_fH3);
DDV_MinMaxFloat(pDX, m_fP1, .0001f, 1000000.f);
DDV_MinMaxFloat(pDX, m_fP2, .0001f, 1000000.f);
DDV_MinMaxFloat(pDX, m_fP3, .0001f, 1000000.f);
DDV_MinMaxFloat(pDX, m_fP4, .0001f, 1000000.f);
DDV_MinMaxFloat(pDX, m_fP5, .0001f, 1000000.f);
DDV_MinMaxFloat(pDX, m_fP6, .0001f, 1000000.f);
DDV_MinMaxFloat(pDX, m_fMinSize, .0001f, 1000000.f);
DDV_MinMaxFloat(pDX, m_fW2, .0001f, 1000000.f);
DDV_MinMaxFloat(pDX, m_fH2, .0001f, 1000000.f);
DDV_MinMaxFloat(pDX, m_fW3, .0001f, 1000000.f);
DDV_MinMaxFloat(pDX, m_fH3, .0001f, 1000000.f);
}
void CBZJCDlg::initLst()
{
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 CBZJCDlg::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 CBZJCDlg::OnBnClickedOk()
{
UpdateData(TRUE);
if (m_fP1 < m_fMinSize)
{
CString err(_T(""));
err.Format(_T("P1 不能小于 %.2f"), m_fMinSize);
AfxMessageBox(err);
return;
}
m_data.fNodeDef[0] = AS_MUNITF(m_fP1);
m_data.fNodeDef[3] = AS_MUNITF(m_fP3);
m_data.fNodeDef[4] = AS_MUNITF(m_fP3);
m_data.fNodeDef[8] = AS_MUNITF(m_fP6);
m_data.fNodeDef[9] = AS_MUNITF(m_fP2);
m_data.fNodeDef[10] = AS_MUNITF(m_fP4);
m_data.fNodeDef[12] = AS_MUNITF(m_fP5);
m_data.fNodeDef[14] = m_nPos1;
m_data.fNodeDef[15] = AS_MUNITF(m_fW2);
m_data.fNodeDef[16] = AS_MUNITF(m_fH2);
m_data.fNodeDef[17] = m_nPos2;
m_data.fNodeDef[18] = AS_MUNITF(m_fW3);
m_data.fNodeDef[19] = AS_MUNITF(m_fH3);
CBaseDialog::OnOK();
}
void CBZJCDlg::OnNMDblclkList1(NMHDR *pNMHDR, LRESULT *pResult)
{
OnBnClickedModify();
*pResult = 0;
}
void CBZJCDlg::OnBnClickedModify()
{
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();
}
BEGIN_MESSAGE_MAP(CBZJCDlg, CBaseDialog)
ON_BN_CLICKED(IDOK, &CBZJCDlg::OnBnClickedOk)
ON_BN_CLICKED(IDC_BUTTON4, &CBZJCDlg::OnBnClickedModify)
ON_NOTIFY(NM_DBLCLK, IDC_LIST1, &CBZJCDlg::OnNMDblclkList1)
END_MESSAGE_MAP()
BOOL CBZJCDlg::OnInitDialog()
{
CBaseDialog::OnInitDialog();
m_fP1 = AS_M2MM(m_data.fNodeDef[0]);
m_fP3 = AS_M2MM(m_data.fNodeDef[3]);
m_fP3 = AS_M2MM(m_data.fNodeDef[4]);
m_fP6 = AS_M2MM(m_data.fNodeDef[8]);
m_fP2 = AS_M2MM(m_data.fNodeDef[9]);
m_fP4 = AS_M2MM(m_data.fNodeDef[10]);
m_fP5 = AS_M2MM(m_data.fNodeDef[12]);
m_nPos1 = (int)m_data.fNodeDef[14];
m_fW2 = AS_M2MM(m_data.fNodeDef[15]);
m_fH2 = AS_M2MM(m_data.fNodeDef[16]);
m_nPos2 = (int)m_data.fNodeDef[17];
m_fW3 = AS_M2MM(m_data.fNodeDef[18]);
m_fH3 = AS_M2MM(m_data.fNodeDef[19]);
initLst();
RefreshLstCtrl();
UpdateData(FALSE);
return TRUE;
}