// DrawLandScape.cpp : implementation file // #include "stdafx.h" #include "DrawLandScapeDlg.h" #include #include #include "LandScapeStyle.h" #include "GlwGlobalVariable.h" //#include "../tch3_kernal/arxBaseTools.h" // CDrawLandScape dialog IMPLEMENT_DYNAMIC(CDrawLandScapeDlg, CDialog) CString CDrawLandScapeDlg::m_edtStyles = _T("卵石1"); AcDbObjectId CDrawLandScapeDlg::m_idLandScapeRoadStyle = NULL; CDrawLandScapeDlg* CDrawLandScapeDlg::g_pCurDlg = NULL; CString CDrawLandScapeDlg::m_strBlockName = _T("景观路(00000001)"); static std::vector g_name; int CDrawLandScapeDlg::m_iDrawType = 1; // zjt add 160831 记录上一次修改的绘制方式 extern AcDbObjectId InsertBlock(CString &csBlkName); // 调用构件库 extern BOOL InvokeTkwMan(const TCHAR *pszLib, BOOL bSelOnly, XString &sBlockName); CDrawLandScapeDlg::CDrawLandScapeDlg(CWnd* pParent /*=NULL*/) : CModelessDialog(CDrawLandScapeDlg::IDD, pParent) /*, m_edtPercent(0)*/ { if (!JudgeBlockFile()) acedPostCommand(_T("\33\33")); if(!GET_GLOBAL_VARIABLE(CLandScapeStyle)) SET_GLOBAL_VARIABLE(CLandScapeStyle, new CLandScapeStyle); CLandScapeStyle* pLandScape = GET_GLOBAL_VARIABLE(CLandScapeStyle); g_pCurDlg = this; m_bAutoAdjust = pLandScape->GetIsAutoAdjust(); m_bRodaLine = pLandScape->GetIsDrawRoadLine(); m_bIsUnitPercent = pLandScape->GetIsUnitPercent(); m_edtPercent = pLandScape->GetWidthPercent(); m_csRoadWidth = setFormatStyle((pLandScape->GetRoadWidth())); m_dRoadWidth = _wtof(m_csRoadWidth); m_dUnitGap = _wtof(setFormatStyle(pLandScape->GetGap())); if (g_name.empty()) { blocknameInit(g_name); } } CDrawLandScapeDlg::~CDrawLandScapeDlg() { //MM单位保存 m_csRoadWidth = setFormatStyle(_AS_MM(m_dRoadWidth)); m_dRoadWidth = _wtof(m_csRoadWidth); CLandScapeStyle* pLandScape = GET_GLOBAL_VARIABLE(CLandScapeStyle); pLandScape->SetRoadWidth(m_dRoadWidth); m_csRoadWidth = setFormatStyle(_AS_MM(m_dUnitGap)); m_dUnitGap = _wtof(m_csRoadWidth); pLandScape->SetUnitGap(m_dUnitGap); m_wndToolTip.DestroyWindow(); } void CDrawLandScapeDlg::DoDataExchange(CDataExchange* pDX) { CModelessDialog::DoDataExchange(pDX); DDX_Text(pDX, IDC_EDT_STYLES, m_edtStyles); DDX_Text(pDX, IDC_EDT_UNITGAP, m_dUnitGap); DDX_Text(pDX, IDC_EDT_ROADWIDTH, m_dRoadWidth); DDX_Text(pDX, IDC_EDT_UNITWIDTHPERCENT, m_edtPercent); DDX_Control(pDX, IDC_EDT_ROADWIDTH, m_wndEdtRoadWidth); DDX_Control(pDX, IDC_EDT_UNITGAP, m_wndEdtGap); DDX_Check(pDX, IDC_CHK_UNITWIDTHPERCENT, m_bIsUnitPercent); DDX_Check(pDX, IDC_CHK_AUTOADJUST, m_bAutoAdjust); DDX_Check(pDX, IDC_CHK_DRAWROADLINE, m_bRodaLine); } BEGIN_MESSAGE_MAP(CDrawLandScapeDlg, CModelessDialog) ON_BN_CLICKED(IDC_BTN_SELECTPATH, OnBnClickedBtnSelectpath) ON_BN_CLICKED(IDC_BTN_DYNAMICDRAW, OnBnClickedBtnDynamicdraw) ON_STN_CLICKED(IDC_STATIC_SHOWPIC, OnStnClickedStaticShowpic) ON_BN_CLICKED(IDC_BTN_ROADWIDTH, OnBnClickedBtnRoadwidth) ON_BN_CLICKED(IDC_CHK_UNITWIDTHPERCENT, OnBnClickedChkUnitwidthpercent) ON_WM_CTLCOLOR() ON_EN_KILLFOCUS(IDC_EDT_ROADWIDTH, OnEnKillfocusEdtRoadwidth) ON_BN_CLICKED(IDC_CHK_DRAWROADLINE, OnBnClickedChkDrawroadline) ON_BN_CLICKED(IDC_CHK_AUTOADJUST, OnBnClickedChkAutoAdjust) ON_EN_KILLFOCUS(IDC_EDT_UNITGAP, OnEnKillfocusEdtUnitgap) ON_EN_KILLFOCUS(IDC_EDT_UNITWIDTHPERCENT, OnEnKillfocusEdtUnitwidthpercent) ON_WM_CLOSE() ON_WM_PAINT() END_MESSAGE_MAP() // CDrawLandScape message handlers void CDrawLandScapeDlg::OnBnClickedBtnSelectpath() { m_iDrawType = 2; m_bExit = FALSE; ((CButton*)GetDlgItem(IDC_BTN_DYNAMICDRAW))->SetCheck(0); ((CButton*)GetDlgItem(IDC_BTN_SELECTPATH))->SetCheck(1); acedPostCommand(_T("\33"));//程序结束命令 } void CDrawLandScapeDlg::OnBnClickedBtnDynamicdraw() { m_iDrawType = 1; m_bExit = FALSE; ((CButton*)GetDlgItem(IDC_BTN_DYNAMICDRAW))->SetCheck(1); ((CButton*)GetDlgItem(IDC_BTN_SELECTPATH))->SetCheck(0); acedPostCommand(_T("\33"));//程序结束命令 } BOOL CDrawLandScapeDlg::OnInitDialog() { CModelessDialog::OnInitDialog(); UpdateData(TRUE); // 获取当前的绘图单位 bIsMetre=true:M;bIsMetre=false:mm BOOL bIsMetre = DocGetMeterUnitDraw(); if (bIsMetre) { this->SetWindowText(_T("景观路(单位:M)")); // 对话框标题设置 } else { this->SetWindowText(_T("景观路(单位:mm)")); } if (m_strBlockName.IsEmpty()) m_strBlockName = _T("景观路(00000001)"); while (!m_idLandScapeRoadStyle.isValid())// 用户没有设值,使用默认值,保存记录,ctrl+z 有问题待解 { m_idLandScapeRoadStyle = InsertBlock(m_strBlockName); } if (!IsBlockInCurDwg(m_idLandScapeRoadStyle)) { m_idLandScapeRoadStyle = NULL; while (!m_idLandScapeRoadStyle.isValid())// 用户没有设值,使用默认值,保存记录,ctrl+z 有问题待解 { m_idLandScapeRoadStyle = InsertBlock(m_strBlockName); } } //AddTip(IDC_STC_PERCENT, _T("景观路单元相对于总路宽的百分比")); if (!m_PreviewCtrl.SubclassDlgItem(IDC_STATIC_SHOWPIC, this)) return FALSE; //m_PreviewCtrl.SetOrbitFlag(/*OBF_ZOOM |放大缩小,鼠标滚轮*/ OBF_PAN);//设置动态观察标志 m_iDrawType; // 预览 //layerInit();//创建图层 //modify tyj 20160921:修正绘制景观路,绘制方式不记录上一次修改的问题 if (m_iDrawType == 1) { ((CButton*)GetDlgItem(IDC_BTN_DYNAMICDRAW))->SetCheck(1); ((CButton*)GetDlgItem(IDC_BTN_SELECTPATH))->SetCheck(0); } else if (m_iDrawType == 2) { ((CButton*)GetDlgItem(IDC_BTN_DYNAMICDRAW))->SetCheck(0); ((CButton*)GetDlgItem(IDC_BTN_SELECTPATH))->SetCheck(1); } if (m_bIsUnitPercent) { GetDlgItem(IDC_EDT_UNITWIDTHPERCENT)->EnableWindow(TRUE); } else { GetDlgItem(IDC_EDT_UNITWIDTHPERCENT)->EnableWindow(FALSE); } EnableToolTips(TRUE); m_wndToolTip.Create(this, TTS_ALWAYSTIP); m_wndToolTip.Activate(TRUE); m_wndToolTip.AddTool(GetDlgItem(IDC_STC_PERCENT), _T("景观路单元相对于总路宽的百分比")); UpdateData(FALSE); UpdatePreview(); SetPicture(); return TRUE; } void CDrawLandScapeDlg::layerInit() { /*IsLayerExistInDb(_T("LSCP-ROAD")); AcDbObjectId idLayer = InitLayer(_T("LSCP-ROAD")); AcDbLayerTableRecord *pLayerTblRcd = NULL; if (acdbOpenObject(pLayerTblRcd, idLayer, AcDb::kForWrite) == Acad::eOk) { pLayerTblRcd->setName(L"LSCP-ROAD"); AcCmColor color; color.setColorIndex(83); pLayerTblRcd->setColor(color); pLayerTblRcd->setDescription(L"碎石、汀步等景观路"); pLayerTblRcd->close(); } */ } //预览 void CDrawLandScapeDlg::UpdatePreview() { UpdateData(TRUE); // m_PreviewCtrl.clearAll(); // m_PreviewCtrl.init(true); // 锁定当前文档 acDocManager->lockDocument(curDoc()); // 块表记录 AcDbBlockTableRecord *pBTRecord = NULL; if (acdbOpenObject(pBTRecord, m_idLandScapeRoadStyle, AcDb::kForRead) != Acad::eOk) { return; } // 定义本数据库的块表记录 AcDbBlockTableRecordIterator *pItor = NULL; pBTRecord->newIterator(pItor); // 预览数据库 AcDbBlockTable *pBlockTab = NULL; Acad::ErrorStatus es = m_PreviewDb.getSymbolTable(pBlockTab, AcDb::kForWrite); if (es != Acad::eOk) return; AcCmColor color; color.setColorIndex(83); m_PreviewDb.setCecolor(color); // 定义预览数据库的块记录 AcDbBlockTableRecord *pBlockTabRecord = new AcDbBlockTableRecord; pBlockTabRecord->setName(_T("*U")); // 将块表中实体添加到新的数据库的块表记录中 AcDbEntity *pClone = NULL, *pEnt = NULL; for (; !pItor->done(); pItor->step()) { es = pItor->getEntity(pEnt, AcDb::kForRead, false); if (es != Acad::eOk) { delete pBlockTabRecord; pBlockTab->close(); return; } pClone = (AcDbEntity*)pEnt->clone(); es = pBlockTabRecord->appendAcDbEntity(pClone); if (es != Acad::eOk) { delete pBlockTabRecord; pBlockTab->close(); return; } pEnt->close(); } delete pItor; pBTRecord->close(); AcDbBlockReference *pRef = new AcDbBlockReference(AcGePoint3d(0, 0, 0), m_idLandScapeRoadStyle); // 获得块的包围盒 AcDbExtents extents; pRef->getGeomExtents(extents); // 块的外包盒的角点 AcGePoint3d ptLow, ptUp; // 获得图块的大小 ptLow = extents.minPoint(); ptUp = extents.maxPoint(); double dXWidth = (ptUp.x - ptLow.x), dYHeigh = (ptUp.y - ptLow.y); //X 为长, Y 为宽 m_dBlockLen = dXWidth; m_dBlockWidth = dYHeigh; //pBlockTab->add(pBlockTabRecord); pBlockTab->close(); pBlockTabRecord->close(); //设置图层, 图块颜色 // AcDbObjectId idLayer = InitLayer(L"LSCP-ROAD"); // pRef->setLayer(idLayer); //AddToModelSpace(pRef, Adesk::kTrue); // 添加到数据库中 // AcGePoint3d ptIns(extents.minPoint() / 2 + extents.maxPoint() / 2), // target = ptIns; // // AcGePoint3d position(target.x, target.y, 1); //m_PreviewCtrl.view()->setView(position, target, AcGeVector3d(0, 1, 0), dXWidth * 2, dYHeigh * 2); //m_PreviewCtrl.view()->add(pBTRecord, m_PreviewCtrl.model()); ////////////////////////////////////////////////////////////////////////// // AcDbLine *line = new AcDbLine(AcGePoint3d(rand() / 100, rand() / 100, rand() / 100), AcGePoint3d(rand() / 100, rand() / 100, rand() / 100)); // // // if we created it ok // if (line != NULL) // { // // add the newly created line to the AcGsView // m_PreviewCtrl.view()->add(line, m_PreviewCtrl.model()); // // close the line now we are finished with it // line->close(); // } ////////////////////////////////////////////////////////////////////////// //预览背景颜色更改 // AcColorSettings colourSettings; // // get the AutoCAD current colour settings // acedGetCurrentColors(&colourSettings); // DWORD colorDW; // // get the background colour // colorDW = colourSettings.dwGfxModelBkColor; // // get the current device background colour // AcGsColor colors = m_PreviewCtrl.device()->getBackgroundColor(); // // now update them to the new color // colors.m_red = GetRValue(colorDW); // colors.m_green = GetGValue(colorDW); // colors.m_blue = GetBValue(colorDW); // colors.m_filler = 255; // opaque background // // finally lets set the new colour // m_PreviewCtrl.device()->setBackgroundColor(colors); // // now remap the colours back to the default // m_PreviewCtrl.device()->setLogicalPalette(&colors, 256); ////////////////////////////////////////////////////////////////////////// //m_PreviewCtrl.Invalidate(); acDocManager->unlockDocument(curDoc()); UpdateData(FALSE); } //点击图片 void CDrawLandScapeDlg::OnStnClickedStaticShowpic() { AcApDocument *pDoc = acDocManager->curDocument(); // 找到sys路径下的dwg文件 CString szFileName = _T("总图.TKW"), sLibFile = g_sDwbPath; sLibFile = sLibFile.Left(sLibFile.GetLength() - 5) + _T("\\DWB\\") + szFileName; XString sBlockName; sBlockName = _T("卵石1"); if (InvokeTkwMan(sLibFile, TRUE, sBlockName)) { m_strBlockName = sBlockName; szFileName = (const TCHAR *)(XPathParser(sBlockName).m_sFileName); sLibFile = g_sDwbPath; CString csPath = sLibFile.Left(sLibFile.GetLength() - 5) + _T("\\DWB\\"); csPath += szFileName; // 锁定文档 acDocManager->lockDocument(pDoc); int nRet = LoadDwbBlock(csPath, sBlockName); if (nRet == RTNORM) { m_idLandScapeRoadStyle = InitBlock(sBlockName); } acDocManager->unlockDocument(pDoc); // m_edtStyles = sBlockName; CString xx(sBlockName.cs()); m_edtStyles = blockNameAdjust(xx); UpdateData(FALSE); UpdatePreview(); SetPicture(); } } // 设置幻灯片显示 void CDrawLandScapeDlg::SetPicture() { XString sFilePath(256); sFilePath << CString(m_strBlockName); // 获得图片控件 CWnd* pWndBmp = GetDlgItem(IDC_STATIC_SHOWPIC); ASSERT(pWndBmp); // 获得图片区域 CDC *pDC = pWndBmp->GetDC(); CRect rect; pWndBmp->GetClientRect(rect); m_imgPreview.InitDC(pDC, rect, GetAcadBackColor()); m_imgPreview.PaintSlide(sFilePath); m_imgPreview.SetDC(NULL); pWndBmp->ReleaseDC(pDC); } //点击路宽 void CDrawLandScapeDlg::OnBnClickedBtnRoadwidth() { double dTemp = m_dRoadWidth; CString strTemp = _T("\n请指定路宽"); ads_real dist = m_dRoadWidth; BeginEditorCommand(); if (GetDist(strTemp, dist, RSG_NOZERO | RSG_NONEG) == RTNORM) { m_dRoadWidth = dist; } else { m_dRoadWidth = dTemp; } CompleteEditorCommand(); m_dRoadWidth = _wtof(setFormatStyle(m_dRoadWidth)); CLandScapeStyle* pLandScape = GET_GLOBAL_VARIABLE(CLandScapeStyle); pLandScape->SetRoadWidth(_AS_MM(m_dRoadWidth)); UpdateData(FALSE); } CString CDrawLandScapeDlg::setFormatStyle(double dData) { CString strTemp; BOOL bret = DocGetMeterUnitDraw(); if (bret) strTemp.Format(_T("%.3f"), dData); else strTemp.Format(_T("%.0f"), dData); return strTemp; } void CDrawLandScapeDlg::OnBnClickedChkUnitwidthpercent() { if (m_bIsUnitPercent) { GetDlgItem(IDC_EDT_UNITWIDTHPERCENT)->EnableWindow(FALSE); } else { GetDlgItem(IDC_EDT_UNITWIDTHPERCENT)->EnableWindow(TRUE); } UpdateData(TRUE); // zjt modify 160831 单元宽百分比的状态无法记录 CLandScapeStyle* pLandScape = GET_GLOBAL_VARIABLE(CLandScapeStyle); pLandScape->SetIsUnitPercent(m_bIsUnitPercent); } void CDrawLandScapeDlg::OnBnClickedChkDrawroadline() { UpdateData(TRUE); CLandScapeStyle* pLandScape = GET_GLOBAL_VARIABLE(CLandScapeStyle); pLandScape->SetIsDrawLine(m_bRodaLine); } void CDrawLandScapeDlg::OnBnClickedChkAutoAdjust() { UpdateData(TRUE); CLandScapeStyle* pLandScape = GET_GLOBAL_VARIABLE(CLandScapeStyle); pLandScape->SetIsAutoAdjust(m_bAutoAdjust); } HBRUSH CDrawLandScapeDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CModelessDialog::OnCtlColor(pDC, pWnd, nCtlColor); // TODO: Change any attributes of the DC here if (IDC_STC_PERCENT == pWnd->GetDlgCtrlID()) { pDC->SetTextColor(RGB(0, 0, 255)); //设置字体颜色 } // TODO: Return a different brush if the default is not desired return hbr; } //路宽,值,判断,处理,消息 void CDrawLandScapeDlg::OnEnKillfocusEdtRoadwidth() { double dTemp = m_dRoadWidth; UpdateData(TRUE); if (m_dRoadWidth <= 0) { MessageBox(_T("请输入 >0 的数值!"), _T("AutoCAD")); m_dRoadWidth = dTemp; } CLandScapeStyle* pLandScape = GET_GLOBAL_VARIABLE(CLandScapeStyle); pLandScape->SetRoadWidth(_AS_MM(m_dRoadWidth)); pLandScape->SetRealBlockWidth(m_dRoadWidth); // zjt add 160906 在更改路宽之后 获取当前路宽 UpdateData(FALSE); } //间距,值,判断,处理,消息 void CDrawLandScapeDlg::OnEnKillfocusEdtUnitgap() { double dTemp = m_dUnitGap; UpdateData(TRUE); if (m_dUnitGap < 0.0) { MessageBox(_T("请输入 ≥0 的数值!"), _T("AutoCAD")); m_dUnitGap = dTemp; } CLandScapeStyle* pLandScape = GET_GLOBAL_VARIABLE(CLandScapeStyle); pLandScape->SetUnitGap(_AS_MM(m_dUnitGap)); UpdateData(FALSE); } double CDrawLandScapeDlg::GetRoadWidth() { return m_dRoadWidth; } double CDrawLandScapeDlg::GetRoadWidthMM() { return m_dRoadWidthMM; } int CDrawLandScapeDlg::GetWidthPercent() { return m_edtPercent; } double CDrawLandScapeDlg::GetGap() { return m_dUnitGap; } int CDrawLandScapeDlg::GetDrawType() { return m_iDrawType; } BOOL CDrawLandScapeDlg::GetRoadLineState() { return m_bRodaLine; } double CDrawLandScapeDlg::GetUnitRealWidth() { if (m_bIsUnitPercent) { m_dUnitRealWidth = m_dRoadWidth * (((double)m_edtPercent)/100); } else { m_dUnitRealWidth = m_dRoadWidth; } return m_dUnitRealWidth; } BOOL CDrawLandScapeDlg::GetAutoAdjustState() { return m_bAutoAdjust; } AcDbObjectId CDrawLandScapeDlg::GetLandScapeId() { UpdateData(TRUE); if (!m_idLandScapeRoadStyle.isValid()) { MessageBox(_T("没有选择图形!")); } return m_idLandScapeRoadStyle; } double CDrawLandScapeDlg::GetBlockWidth() { return m_dBlockWidth; } double CDrawLandScapeDlg::GetBlockLen() { return m_dBlockLen; } CString CDrawLandScapeDlg::blockNameAdjust(CString& stroldName) { for (std::vector::iterator result = g_name.begin(); result != g_name.end(); result++) { if (stroldName.Compare(result->strOldName) == 0) { return result->strNewName; } } return L""; } void CDrawLandScapeDlg::OnEnKillfocusEdtUnitwidthpercent() { int iSize = m_edtPercent; UpdateData(TRUE); if (iSize < 0) { MessageBox(_T("请输入≥0的数字"), _T("AutoCAD"), MB_OK); return; } UpdateData(FALSE); CLandScapeStyle* pLandScape = GET_GLOBAL_VARIABLE(CLandScapeStyle); pLandScape->SetUnitPercent(m_edtPercent); } void CDrawLandScapeDlg::OnClose() { m_bExit = TRUE; if (m_bModeless) { acedPostCommand(_T("\33\33")); } else { CModelessDialog::OnClose(); } } BOOL CDrawLandScapeDlg::IsBlockInCurDwg(AcDbObjectId& blockId) { Acad::ErrorStatus es; AcDbBlockTable *pBlockTable; BOOL IsIn = FALSE; es=acdbCurDwg()->getBlockTable(pBlockTable,AcDb::kForWrite); if (es != Acad::eOk) { ads_printf(_T("Unable to open block table.\n")); return false; } IsIn = pBlockTable->has(blockId); pBlockTable->close(); return IsIn; } BOOL CDrawLandScapeDlg::PreTranslateMessage(MSG* pMsg) { //CToolInfo toolInfo; //if (pMsg->message >= WM_MOUSEFIRST && // pMsg->message <= WM_MOUSELAST&&m_wndToolTip.GetToolInfo(toolInfo,FromHandle(pMsg->hwnd))) //{ ///* MSG msg; // memcpy(&msg, pMsg, sizeof(MSG));*/ // m_wndToolTip.RelayEvent(&msg); //} m_wndToolTip.RelayEvent(pMsg); return CModelessDialog::PreTranslateMessage(pMsg); } void CDrawLandScapeDlg::OnPaint() { CPaintDC dc(this); CRect rcClip, rcImage; dc.GetClipBox(&rcClip); CWnd *pImageBox = GetDlgItem(IDC_STATIC_SHOWPIC); if (pImageBox) { pImageBox->GetWindowRect(&rcImage); ScreenToClient(&rcImage); if (!rcImage.IntersectRect(&rcImage, &rcClip)) return; CDC *pDC = pImageBox->GetDC(); m_imgPreview.SetDC(pDC); m_imgPreview.Redraw(); m_imgPreview.SetDC(NULL); pImageBox->ReleaseDC(pDC); } } void CDrawLandScapeDlg::blocknameInit(std::vector& name) { blockName blockname; blockname.strOldName = _T("$景观路$00000001"); blockname.strNewName = _T("卵石1"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000002"); blockname.strNewName = _T("卵石2"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000003"); blockname.strNewName = _T("卵石3"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000004"); blockname.strNewName = _T("卵石4"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000005"); blockname.strNewName = _T("卵石5"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000006"); blockname.strNewName = _T("卵石6"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000007"); blockname.strNewName = _T("条石1"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000008"); blockname.strNewName = _T("条石2"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000009"); blockname.strNewName = _T("条石3"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000010"); blockname.strNewName = _T("条石4"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000011"); blockname.strNewName = _T("片石1"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000012"); blockname.strNewName = _T("片石2"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000013"); blockname.strNewName = _T("片石3"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000014"); blockname.strNewName = _T("片石4"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000015"); blockname.strNewName = _T("片石5"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000016"); blockname.strNewName = _T("片石6"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000017"); blockname.strNewName = _T("片石7"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000018"); blockname.strNewName = _T("片石8"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000019"); blockname.strNewName = _T("片石9"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000020"); blockname.strNewName = _T("片石10"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000021"); blockname.strNewName = _T("片石11"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000022"); blockname.strNewName = _T("片石12"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000023"); blockname.strNewName = _T("石板1"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000024"); blockname.strNewName = _T("石板2"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000025"); blockname.strNewName = _T("石板3"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000026"); blockname.strNewName = _T("石板4"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000027"); blockname.strNewName = _T("石板5"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000028"); blockname.strNewName = _T("石板6"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000059"); blockname.strNewName = _T("石板7"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000030"); blockname.strNewName = _T("石板8"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000031"); blockname.strNewName = _T("石板9"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000032"); blockname.strNewName = _T("石板10"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000033"); blockname.strNewName = _T("叶氏汀步石1"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000034"); blockname.strNewName = _T("叶氏汀步石2"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000035"); blockname.strNewName = _T("叶氏汀步石3"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000036"); blockname.strNewName = _T("叶氏汀步石4"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000037"); blockname.strNewName = _T("叶氏汀步石5"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000038"); blockname.strNewName = _T("叶氏汀步石6"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000039"); blockname.strNewName = _T("叶氏汀步石7"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000040"); blockname.strNewName = _T("叶氏汀步石8"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000041"); blockname.strNewName = _T("叶氏汀步石9"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000042"); blockname.strNewName = _T("墩式汀步石1"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000043"); blockname.strNewName = _T("墩式汀步石2"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000044"); blockname.strNewName = _T("墩式汀步石3"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000045"); blockname.strNewName = _T("墩式汀步石4"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000046"); blockname.strNewName = _T("墩式汀步石5"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000047"); blockname.strNewName = _T("墩式汀步石6"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000048"); blockname.strNewName = _T("墩式汀步石7"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000049"); blockname.strNewName = _T("墩式汀步石8"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000050"); blockname.strNewName = _T("平板步石1"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000051"); blockname.strNewName = _T("平板步石2"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000052"); blockname.strNewName = _T("平板步石3"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000053"); blockname.strNewName = _T("平板步石4"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000054"); blockname.strNewName = _T("树桩汀步石1"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000055"); blockname.strNewName = _T("树桩汀步石2"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000056"); blockname.strNewName = _T("树桩汀步石3"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000057"); blockname.strNewName = _T("汀步步石1"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000058"); blockname.strNewName = _T("汀步步石2"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000059"); blockname.strNewName = _T("汀步步石3"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000060"); blockname.strNewName = _T("汀步步石4"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000061"); blockname.strNewName = _T("汀步步石5"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000062"); blockname.strNewName = _T("汀步步石6"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000063"); blockname.strNewName = _T("汀步步石7"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000064"); blockname.strNewName = _T("汀步步石8"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000065"); blockname.strNewName = _T("汀步步石9"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000066"); blockname.strNewName = _T("汀步步石10"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000067"); blockname.strNewName = _T("汀步步石11"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000068"); blockname.strNewName = _T("汀步步石12"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000069"); blockname.strNewName = _T("汀步步石13"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000070"); blockname.strNewName = _T("汀步步石14"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000071"); blockname.strNewName = _T("汀步步石15"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000072"); blockname.strNewName = _T("汀步步石16"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000073"); blockname.strNewName = _T("汀步步石17"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000074"); blockname.strNewName = _T("汀步步石18"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000075"); blockname.strNewName = _T("汀步步石19"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000076"); blockname.strNewName = _T("汀步步石20"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000077"); blockname.strNewName = _T("汀步步石21"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000078"); blockname.strNewName = _T("汀步步石22"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000079"); blockname.strNewName = _T("汀步步石23"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000080"); blockname.strNewName = _T("汀步步石24"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000081"); blockname.strNewName = _T("汀步步石25"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000082"); blockname.strNewName = _T("荷叶汀步石1"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000083"); blockname.strNewName = _T("荷叶汀步石2"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000084"); blockname.strNewName = _T("荷叶汀步石3"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000085"); blockname.strNewName = _T("荷叶汀步石4"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000086"); blockname.strNewName = _T("荷叶汀步石5"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000087"); blockname.strNewName = _T("荷叶汀步石6"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000088"); blockname.strNewName = _T("荷叶汀步石7"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000089"); blockname.strNewName = _T("荷叶汀步石8"); name.push_back(blockname); blockname.strOldName = _T("$景观路$00000090"); blockname.strNewName = _T("花架"); name.push_back(blockname); } BOOL CDrawLandScapeDlg::JudgeBlockFile() { CString szFileName = _T("总图.TKW"), sLibFile = g_sDwbPath; CString strFilePath; sLibFile = sLibFile.Left(sLibFile.GetLength() - 5) + _T("\\DWB\\") ; strFilePath = sLibFile + szFileName; if (_taccess(strFilePath, 0) == -1) { MessageBox(_T("缺少图库:总图.TKW")); return FALSE; } szFileName = _T("景观路.SLB"); strFilePath = sLibFile + szFileName; if (_taccess(strFilePath, 0) == -1) { MessageBox(_T("缺少图库:景观路.SLB")); return FALSE; } szFileName = _T("景观路.TK"); strFilePath = sLibFile + szFileName; if (_taccess(strFilePath, 0) == -1) { MessageBox(_T("缺少图库:景观路.TK")); return FALSE; } szFileName = _T("景观路.DWB"); strFilePath = sLibFile + szFileName; if (_taccess(strFilePath, 0) == -1) { MessageBox(_T("缺少图库:景观路.DWB")); return FALSE; } }