#ifndef TARCHSETTINGEDITTOOLS_2009_01_15 #define TARCHSETTINGEDITTOOLS_2009_01_15 //#pragma once #include "adui.h" #include "acui.h" #include #include "XMLDomNode.h" #include "XMLDomNodes.h" #include "XMLDomFile.h" class TarchHotKeyInfo { public: //CString m_strKeyTitl;//命令组名 CString m_strKeyName;//命令名 CString m_strCmdName;//调用函数的名字 CString m_strCmment;//命令描述 public: TarchHotKeyInfo() { m_strKeyName = _T("");//命令名 m_strCmdName = _T("");//调用函数的名字 m_strCmment = _T("");//命令描述 } TarchHotKeyInfo(const TarchHotKeyInfo&data) { m_strKeyName = data.m_strKeyName;//命令名 m_strCmdName = data.m_strCmdName;//调用函数的名字 m_strCmment = data.m_strCmment;//命令描述 } TarchHotKeyInfo& operator=(const TarchHotKeyInfo&data) { m_strKeyName = data.m_strKeyName;//命令名 m_strCmdName = data.m_strCmdName;//调用函数的名字 m_strCmment = data.m_strCmment;//命令描述 return *this; } }; class CToolbarData; typedef Array NodeInfoAry; class CTArchSettingEditTools { public: CTArchSettingEditTools(void); void SetXMLDoc(CXMLDOMFile*pXMLDoc){m_pXMLDoc = pXMLDoc;}//指定要操作的文档 //将上华设置信息导出到指定路径的xml文档 BOOL ExportTArchSettingData(CString strPath); //导入指定xml文件中的设置内容 xml文件格式必须符合上华设置文件格式 void ImportAllTArchSettingData(std::map &importMapData); public: ~CTArchSettingEditTools(void); private: // 导入上华设置内容 void ImportTArchSet(std::map &importMapData); ////导入基本设置对话框内容 void ImportBaseSet(const Array &aryData); void SetOneBasePara(const CXMLNodeInfoEx& data); ////导入墙柱加粗界面内容 void ImportWallPillarSet(const Array &aryData); void SetWallPillarPara(const CXMLNodeInfoEx& data,TDbConfig *p); //轻质隔墙材料 void ImportMaterialPattern1(const CXMLNodeInfoEx& data,TDbConfig *pConfig,const CString &strName); //填充墙材料 void ImportMaterialPattern2(const CXMLNodeInfoEx& data,TDbConfig *pConfig,const CString &strName); //填充墙1材料 void ImportMaterialPattern3(const CXMLNodeInfoEx& data,TDbConfig *pConfig,const CString &strName); //填充墙2材料 void ImportMaterialPattern4(const CXMLNodeInfoEx& data,TDbConfig *pConfig,const CString &strName); //砖墙柱材料 void ImportMaterialPattern5(const CXMLNodeInfoEx& data,TDbConfig *pConfig,const CString &strName); //石墙柱材料 void ImportMaterialPattern6(const CXMLNodeInfoEx& data,TDbConfig *pConfig,const CString &strName); //钢筋混凝土 void ImportMaterialPattern7(const CXMLNodeInfoEx& data,TDbConfig *pConfig,const CString &strName); //刚柱 void ImportMaterialPattern8(const CXMLNodeInfoEx& data,TDbConfig *pConfig,const CString &strName); //导入高级选项内容 void ImportAdvancedSet(const Array &aryData); // 导入自定义内容 ////导入屏幕菜单 void ImportScreenMenu(const Array &aryData); void SetScreenMenuData(const CXMLNodeInfoEx &data); ////导入工具条 void ImportToolBar(const Array &aryData); ////导入快捷键设置 void ImportHotKeySet(const Array &aryData); void WritePgp(const Array &aryData); ////导入其他设置 void ImportOtherSet(const Array &aryData); void SetFontProperty(const CXMLNodeInfoEx&nodeInfo); //导入用户操作 void ImportUserOpreatorSet(const Array &aryData); void SetUserOpreator(const CXMLNodeInfoEx&nodeInfo); // 导出图形相关设置 void ExportDwgSet(const CXMLDOMNodePtr& pXMLDOMNodePtr); //导出墙柱设置 void ExportWallPillarSet(const CXMLDOMNodePtr& pXMLDOMNodePtr); //导出墙柱材料 void ExortMaterialPattern(const CXMLDOMNodePtr& pXMLDOMNodePtr); //轻质隔墙材料 void ExortMaterialPattern1(TDbConfig *pConfig,const CXMLDOMNodePtr& pXMLDOMNodePtr); //填充墙材料 void ExortMaterialPattern2(TDbConfig *pConfig,const CXMLDOMNodePtr& pXMLDOMNodePtr); //填充墙1材料 void ExortMaterialPattern3(TDbConfig *pConfig,const CXMLDOMNodePtr& pXMLDOMNodePtr); //填充墙2材料 void ExortMaterialPattern4(TDbConfig *pConfig,const CXMLDOMNodePtr& pXMLDOMNodePtr); //砖墙柱材料 void ExortMaterialPattern5(TDbConfig *pConfig,const CXMLDOMNodePtr& pXMLDOMNodePtr); //石墙柱材料 void ExortMaterialPattern6(TDbConfig *pConfig,const CXMLDOMNodePtr& pXMLDOMNodePtr); //钢筋混凝土 void ExortMaterialPattern7(TDbConfig *pConfig,const CXMLDOMNodePtr& pXMLDOMNodePtr); //刚柱 void ExortMaterialPattern8(TDbConfig *pConfig,const CXMLDOMNodePtr& pXMLDOMNodePtr); //导出高级选项内容 void ExortAdvancedSet(const CXMLDOMNodePtr& pXMLDOMNodePtr); //导出dict文档 void DictToXml(WDict *pDict,const CXMLDOMNodePtr& pXMLDOMNodePtr); //导出dict中的父节点项 void DictToXmlParentNode(WDict *pDict,const CXMLDOMNodePtr& pXMLDOMNodePtr); //导出dict中的叶子节点项 void DictToXmlLeafNode(WDict *pDict,const CXMLDOMNodePtr& pXMLDOMNodePtr); //导出自定义内容 //导出屏幕菜单 void ExportScreenMenu(const CXMLDOMNodePtr& pXMLDOMNodePtr); //导出工具条 void ExportToolBar(const CXMLDOMNodePtr& pXMLDOMNodePtr); //导出快捷键设置 void ExportHotKey(const CXMLDOMNodePtr& pXMLDOMNodePtr); void ExportPgp(const CXMLDOMNodePtr& pXMLDOMNodePtr); void ExportOneHotKey(const CXMLDOMNodePtr& pXMLDOMNodePtr); //导出其他设置 void ExportOtherSetting(const CXMLDOMNodePtr& pXMLDOMNodePtr); //导出用户操作界面 void ExportUserOpreatorSetting(const CXMLDOMNodePtr& pXMLDOMNodePtr); //根据指定命令名在dbf数据库中找到相应的描述 CString FindComment(const CString &strCmd); //查找xml节点值在指定属性中的位置 int GetIndex(const CXMLNodeInfoEx &data,const CString &strAttriName); //根据/ 把节点路径字符串分割成数组 void GetListCtrlIndex(const CXMLNodeInfoEx &data,CStringArray &arystr); //把一个字符串分成多个字符串 按空格分 void DevideStr(const CString &str,CStringArray &aryStr); //得到子串在原字符串中的位置定义尽适用于 “asd sd fg” 中查询asd等以空格分界 int GetSubStrNumInStr(const CString &str,const CString strSub) { CString strTem; CStringArray arystr; int nPos = str.Find(_T(" "),0);//根据空格区分子字符串 int nStart = 0; while (nPos!=-1) { int nNum = nPos-nStart; strTem = str.Mid(nStart,nNum);//得到子串添加到数组 arystr.Add(strTem); nStart = nPos+1; nPos = str.Find(_T(" "),nPos+1); } int nSize = str.GetLength(); if (nStart-1 m_lstToolbarData; }; #endif