151 lines
7.7 KiB
C++
151 lines
7.7 KiB
C++
#include "stdafx.h"
|
|
#include "CXLFSDlg.h"
|
|
#include "resource.h"
|
|
#include "UITools.h"
|
|
#include "XSXLDlg.h"
|
|
|
|
namespace
|
|
{
|
|
DWORD colorIdx2RGB(int &clr)
|
|
{
|
|
AcCmColor color;
|
|
color.setColorIndex(clr);
|
|
return RGB(color.red(), color.green(), color.blue());
|
|
}
|
|
}
|
|
|
|
IMPLEMENT_DYNAMIC(CXLFSDlg, CDialog)
|
|
|
|
CXLFSDlg::CXLFSDlg(PIPECABLE::Cabling &cabling, LPCTSTR pszTitle, CWnd* pParent)
|
|
: CDialog(IDD_XLFS_DLG, pParent)
|
|
, m_cabling(cabling)
|
|
, m_sTitle(pszTitle)
|
|
{
|
|
m_cabling.sort();
|
|
}
|
|
|
|
CXLFSDlg::~CXLFSDlg()
|
|
{
|
|
}
|
|
|
|
void CXLFSDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
DDX_Control(pDX, IDC_LIST1, m_ctrlList);
|
|
}
|
|
|
|
BOOL CXLFSDlg::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
initList();
|
|
refreshList();
|
|
SetWindowText(m_sTitle);
|
|
return TRUE;
|
|
}
|
|
|
|
void CXLFSDlg::initList()
|
|
{
|
|
m_ctrlList.SetExtendedStyle(LVS_EX_FULLROWSELECT);
|
|
|
|
m_ctrlList.InsertColumn(0, _T("位置(层)"), LVCFMT_CENTER, 60);
|
|
m_ctrlList.InsertColumn(1, _T("数目(条)"), LVCFMT_CENTER, 60);
|
|
m_ctrlList.InsertColumn(2, _T("间距(毫米)"), LVCFMT_CENTER, 80);
|
|
|
|
|
|
m_ctrlList.InsertColumn(3, _T("外径(毫米)"), LVCFMT_CENTER, 80);
|
|
m_ctrlList.InsertColumn(4, _T("曲率半径(毫米)"), LVCFMT_CENTER, 100);
|
|
|
|
m_ctrlList.InsertColumn(5, _T("颜色"), LVCFMT_CENTER, 40);
|
|
m_ctrlList.InsertColumn(6, _T("线型"), LVCFMT_CENTER, 100);
|
|
|
|
m_ctrlList.InsertColumn(7, _T("型号"), LVCFMT_CENTER, 150);
|
|
m_ctrlList.InsertColumn(8, _T("厂家"), LVCFMT_CENTER, 150);
|
|
}
|
|
|
|
void CXLFSDlg::refreshList()
|
|
{
|
|
m_ctrlList.DeleteAllItems();
|
|
int nRow(0), prec(1);
|
|
for (size_t i = 0; i < m_cabling.m_cables.size(); ++i)
|
|
{
|
|
PIPECABLE::SubCabling &sc(m_cabling.m_cables[i]);
|
|
|
|
nRow = m_ctrlList.InsertItem(0, TypeConvert::i2s(sc.m_nFloor));
|
|
m_ctrlList.SetItemText(nRow, 1, sc.m_bValid ? (LPCTSTR)TypeConvert::i2s(sc.m_nCount) : _T("---"));
|
|
m_ctrlList.SetItemText(nRow, 2, sc.m_bValid ? (LPCTSTR)TypeConvert::f2s(sc.m_dSpace, &prec) : _T("---"));
|
|
m_ctrlList.SetItemText(nRow, 3, sc.m_bValid ? (LPCTSTR)TypeConvert::f2s(sc.m_dD, &prec) : _T("---"));
|
|
m_ctrlList.SetItemText(nRow, 4, sc.m_bValid ? (LPCTSTR)TypeConvert::f2s(sc.m_dDn, &prec) : _T("---"));
|
|
m_ctrlList.SetItemText(nRow, 5, sc.m_bValid ? (LPCTSTR)TypeConvert::i2s(sc.m_nClr) : _T("---"));
|
|
m_ctrlList.SetItemText(nRow, 6, sc.m_bValid ? (LPCTSTR)sc.m_linetype : _T("---"));
|
|
m_ctrlList.SetItemText(nRow, 7, sc.m_bValid ? (LPCTSTR)sc.m_sModel : _T("---"));
|
|
m_ctrlList.SetItemText(nRow, 8, sc.m_bValid ? (LPCTSTR)sc.m_sFactory : _T("---"));
|
|
m_ctrlList.SetItemData(nRow, (DWORD_PTR)&sc);
|
|
}
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CXLFSDlg, CDialog)
|
|
ON_BN_CLICKED(IDC_BUTTON1, &CXLFSDlg::OnBnClickedModify)
|
|
ON_BN_CLICKED(IDC_BUTTON2, &CXLFSDlg::OnBnClickedDelete)
|
|
ON_BN_CLICKED(IDOK, &CXLFSDlg::OnBnClickedOk)
|
|
ON_NOTIFY(NM_DBLCLK, IDC_LIST1, &CXLFSDlg::OnNMDblclkList1)
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
void CXLFSDlg::OnBnClickedModify()
|
|
{
|
|
int nRow = m_ctrlList.GetSelectionMark();
|
|
if (nRow == -1)
|
|
{
|
|
AfxMessageBox(_T("请选择一行数据。"));
|
|
return;
|
|
}
|
|
if (nRow >= m_cabling.m_cables.size()) return;
|
|
|
|
PIPECABLE::SubCabling &sc(*(PIPECABLE::SubCabling*)m_ctrlList.GetItemData(nRow));
|
|
|
|
CXSXLDlg dlg;
|
|
|
|
if (sc.m_bValid) // 如果有效,则取出所有数据
|
|
dlg.m_data = sc;
|
|
else // 如无效,则只要层号
|
|
dlg.m_data.m_nFloor = sc.m_nFloor;
|
|
|
|
if (dlg.DoModal() != IDOK) return;
|
|
|
|
sc = dlg.m_data;
|
|
|
|
refreshList();
|
|
}
|
|
|
|
|
|
void CXLFSDlg::OnBnClickedDelete()
|
|
{
|
|
int nRow = m_ctrlList.GetSelectionMark();
|
|
if (nRow == -1)
|
|
{
|
|
AfxMessageBox(_T("请选择一行数据。"));
|
|
return;
|
|
}
|
|
if (nRow >= m_cabling.m_cables.size()) return;
|
|
|
|
PIPECABLE::SubCabling &sc(*(PIPECABLE::SubCabling*)m_ctrlList.GetItemData(nRow));
|
|
sc.m_bValid = false;
|
|
|
|
refreshList();
|
|
}
|
|
|
|
|
|
void CXLFSDlg::OnBnClickedOk()
|
|
{
|
|
CDialog::OnOK();
|
|
}
|
|
|
|
|
|
void CXLFSDlg::OnNMDblclkList1(NMHDR *pNMHDR, LRESULT *pResult)
|
|
{
|
|
LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
|
|
*pResult = 0;
|
|
OnBnClickedModify();
|
|
}
|