// VerticalSectionSettingDlg.cpp : implementation file // #include "stdafx.h" #include #include #include "twtdef.h" #include "VerticalSectionSettingDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif //*************************************************************************************************** // 设置表头 //*************************************************************************************************** void SetVerticalSectionHead() { TCHAR szText[256]; BOOL bIsFeedSys = FALSE; ads_getstring(0, _T("\n设置纵断面图表头1:雨污系统 2:给水系统<雨污系统>:"), szText); if(_tcsicmp(szText, _T("2")) == 0) bIsFeedSys = TRUE; CTemporaryResourceOverride vTemp; CVerticalSectionSettingDlg dlg; CRegProperty regProp(GetRegLocation(), _T("TWTConfig")); regProp.SetTopRootKey(HKEY_CURRENT_USER); regProp.GetValue(_T("VerticalSectionHead"), g_csVerticalSectionHead); regProp.GetValue(_T("VerticalSectionHeadFeed"), g_csVerticalSectionHeadFeed); CString csHead = g_csVerticalSectionHead; if(bIsFeedSys) csHead = g_csVerticalSectionHeadFeed; int idx(1); while(1){ TCHAR sBuf[256]=_T(""); CT_strnth(csHead, idx, sBuf); if(_tcsicmp(sBuf, _T("")) == 0) break; dlg.m_lstSel.Append(tstrnew(sBuf)); idx++; } if(dlg.DoModal() != IDOK) return; if(bIsFeedSys) g_csVerticalSectionHeadFeed = dlg.m_csRet; else g_csVerticalSectionHead = dlg.m_csRet; regProp.SetValue(_T("VerticalSectionHead"), g_csVerticalSectionHead); regProp.SetValue(_T("VerticalSectionHeadFeed"), g_csVerticalSectionHeadFeed); } //*************************************************************************************************** // 修改表头 //*************************************************************************************************** void ModifyVerticalSectionHead() { RBList rbMask(RTDXF0, _T("ATS_VERTICALSECTION,ATS_VERTICALSECTION_FEED"), 8, _T("*"), NULL); Entity ent; CTemporaryResourceOverride vTemp; CVerticalSectionSettingDlg dlg; if(SelectEntity(_T("\n请选择要修改表头的纵断面图<退出>:"), ent, rbMask) != RTNORM) return; CString csHead; if(ent.Is(_T("ATS_VERTICALSECTION"))) { OPENOBJ_BEGIN(ent, AcDb::kForRead, TDbVerticalSection, pVt); if(pVt){ csHead = pVt->GetSheetHead(); } OPENOBJ_END(); } else { OPENOBJ_BEGIN(ent, AcDb::kForRead, TDbVerticalSectionFeed, pVt); if(pVt){ csHead = pVt->GetSheetHead(); } OPENOBJ_END(); } int idx(1); while(1){ TCHAR sBuf[256]=_T(""); CT_strnth(csHead, idx, sBuf); if(_tcsicmp(sBuf, _T("")) == 0) break; dlg.m_lstSel.Append(tstrnew(sBuf)); idx++; } if(dlg.DoModal() != IDOK) return; if(ent.Is(_T("ATS_VERTICALSECTION"))) { OPENOBJ_BEGIN(ent, AcDb::kForWrite, TDbVerticalSection, pVt); if(pVt){ pVt->SetSheetHead(dlg.m_csRet); } OPENOBJ_END(); } else { OPENOBJ_BEGIN(ent, AcDb::kForWrite, TDbVerticalSectionFeed, pVt); if(pVt){ pVt->SetSheetHead(dlg.m_csRet); } OPENOBJ_END(); } } ///////////////////////////////////////////////////////////////////////////// // CVerticalSectionSettingDlg dialog CVerticalSectionSettingDlg::CVerticalSectionSettingDlg(CWnd* pParent /*=NULL*/) : CDialog(CVerticalSectionSettingDlg::IDD, pParent) { //{{AFX_DATA_INIT(CVerticalSectionSettingDlg) m_iSelAll = 0; m_iSelSel = 0; //}}AFX_DATA_INIT } void CVerticalSectionSettingDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CVerticalSectionSettingDlg) DDX_Control(pDX, IDC_LIST_SEL, m_listSel); DDX_Control(pDX, IDC_LIST_ALL, m_listAll); DDX_LBIndex(pDX, IDC_LIST_ALL, m_iSelAll); DDX_LBIndex(pDX, IDC_LIST_SEL, m_iSelSel); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CVerticalSectionSettingDlg, CDialog) //{{AFX_MSG_MAP(CVerticalSectionSettingDlg) ON_BN_CLICKED(IDC_BUT_ADD, OnButAdd) ON_BN_CLICKED(IDC_BUT_REMOVE, OnButRemove) ON_BN_CLICKED(IDC_BUTTON_UP, OnButtonUp) ON_BN_CLICKED(IDC_BUTTON_DOWN, OnButtonDown) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CVerticalSectionSettingDlg message handlers BOOL CVerticalSectionSettingDlg::OnInitDialog() { CDialog::OnInitDialog(); m_lstAll.Append(tstrnew(_T("井编号"))); m_lstAll.Append(tstrnew(_T("自然地面标高(m)"))); m_lstAll.Append(tstrnew(_T("设计地面标高(m)"))); m_lstAll.Append(tstrnew(_T("埋设深度(m)"))); m_lstAll.Append(tstrnew(_T("覆土厚度(m)"))); m_lstAll.Append(tstrnew(_T("管标高(m)"))); m_lstAll.Append(tstrnew(_T("管道基础"))); m_lstAll.Append(tstrnew(_T("管材和接口形式"))); m_lstAll.Append(tstrnew(_T("桩号"))); m_lstAll.Append(tstrnew(_T("管道长度(m)"))); m_lstAll.Append(tstrnew(_T("管径(mm)"))); m_lstAll.Append(tstrnew(_T("管道坡度"))); m_lstAll.Append(tstrnew(_T("管线平面"))); m_lstAll.Append(tstrnew(_T("井径(mm)"))); m_lstAll.Append(tstrnew(_T("备注"))); for(int i=0;i -1) return; m_lstSel.Append(tstrnew(csSel)); ResetList(); } void CVerticalSectionSettingDlg::OnButRemove() { UpdateData(TRUE); if(m_iSelSel < 0) return; m_lstSel.Remove(m_iSelSel); ResetList(); } void CVerticalSectionSettingDlg::OnButtonUp() { UpdateData(TRUE); if(m_iSelSel < 1) return; m_lstSel.Swap(m_iSelSel, m_iSelSel-1); int old = m_iSelSel - 1; ResetList(); m_iSelSel = old; UpdateData(FALSE); } void CVerticalSectionSettingDlg::OnButtonDown() { UpdateData(TRUE); if(m_iSelSel < 0 || m_iSelSel == m_lstSel.Length()-1) return; int old = m_iSelSel + 1; m_lstSel.Swap(m_iSelSel, m_iSelSel+1); ResetList(); m_iSelSel = old; UpdateData(FALSE); } void CVerticalSectionSettingDlg::OnOK() { UpdateData(TRUE); for(int i=0;i