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

274 lines
6.7 KiB
C++

#ifndef _LAYERMANAGE_H
#define _LAYERMANAGE_H
#include "resource.h"
#include <adui.h>
#include <acui.h>
#include "afxwin.h"
///////////////////////////////////////////////////////////
// TLayerGrid
class TLayerGrid : public WDGrid
{
public:
TLayerGrid();
void SetModify( BOOL bModify = FALSE );
BOOL GetModify();
protected:
BOOL m_bModify;
virtual void OnBeforeRefresh(WDGridCell&cell);
virtual bool OnCellButtonDown(WDGridCell&cell,CString&res);
virtual bool OnCellButtonTip(long row,long col,CString&res)const;
virtual void OnCellComboString(WDGridCell &cell,CComboBox&combo);
virtual void OnDataChanged();
};
/////////////////////////////////////////////////////////////
// CLayerManager 对话框
#if (ADS <= 16)
class CLayerManager : public CAcUiDialog
{
DECLARE_DYNAMIC(CLayerManager)
public:
CLayerManager(CWnd* pParent = NULL); // 标准构造函数
virtual ~CLayerManager();
// 对话框数据
enum { IDD = IDD_LAYER_MANAGE };
CComboBox m_standard;
TLayerGrid m_grid;
CString m_sStdName;//add by whl
protected:
CString m_szCurFile;
CString m_szSysPath;
void InitGrid();
void UpdateGrid();
void UpdateVisible();
void UpdateCombox();
void SaveFile();
BOOL ReadFile();
BOOL WriteFile();
CString GetFullPath(const TCHAR *szFileName);
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
virtual BOOL OnInitDialog();
virtual void OnOK();
afx_msg void OnClose();
afx_msg void OnBnClickedButtonSetcurrent();
afx_msg void OnBnClickedButtonNew();
afx_msg void OnBnClickedButtonChange();
afx_msg void OnBnClickedButtonColor();
afx_msg void OnCbnSelchangeComboStandard();
DECLARE_MESSAGE_MAP()
};
#else
//////////////////////////////////////////////////////////////////////////
// 将对话框风格改为T20风格
class CLayerManager: public CModelessDialog
{
DECLARE_DYNAMIC(CLayerManager)
public:
CLayerManager(CWnd *pParent = NULL);
virtual ~CLayerManager();
public:
CComboBox m_standard;
TLayerGrid m_grid;
CString m_sStdName;//add by whl
protected:
CString m_szCurFile;
CString m_szSysPath;
CStatic m_staticTxt;
CButton m_btnSetCur, m_btnNewRule, m_btnLayChange, m_btnClrRecover, m_btnClose;
CListBox m_lstBox;
protected:
void InitGrid();
void UpdateGrid();
void UpdateVisible();
void UpdateCombox();
void SaveFile();
BOOL ReadFile();
BOOL WriteFile();
CString GetFullPath(const TCHAR *szFileName);
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
virtual BOOL OnInitDialog();
virtual void OnOK();
afx_msg void OnClose();
afx_msg void OnBnClickedButtonSetcurrent();
afx_msg void OnBnClickedButtonNew();
afx_msg void OnBnClickedButtonChange();
afx_msg void OnBnClickedButtonColor();
afx_msg void OnCbnSelchangeComboStandard();
DECLARE_MESSAGE_MAP()
};
#endif
#if (ADS <= 16)
class CLayerStandardDlg : public GlwCAcUiDialog
{
public:
CString m_szNewStandard;
bool m_bSave;
public:
CLayerStandardDlg(CWnd* pParent = NULL) : GlwCAcUiDialog(IDD_LAYER_NEWSTANDARD, pParent),m_bSave(false){}
protected:
virtual void DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX, IDC_EDIT_NEW, m_szNewStandard);
if (m_bSave)
SetWindowText(_T("另存为"));
}
};
#else
////////////////////////////////////////////////////////////////////////////////
// CLayerStandardDlg 对话框
// modify by gjm 改造成T20风格
class CLayerStandardDlg : public CModelessDialog
{
DECLARE_DYNAMIC(CLayerStandardDlg)
public:
CString m_szNewStandard;
CStatic m_staTxt;
CEdit m_edt;
CButton m_btnOk, m_btnCancel;
public:
CLayerStandardDlg(CWnd* pParent = NULL) : CModelessDialog(false){}
protected:
virtual void DoDataExchange(CDataExchange* pDX);
virtual BOOL OnInitDialog();
virtual void OnOK();
DECLARE_MESSAGE_MAP()
};
#endif
//////////////////////////////////////////////////////////
// CLayerData
class CLayerData
{
public:
CString m_szKey;
CString m_szName;
int m_nColor;
public:
CLayerData(const TCHAR* sKey, const TCHAR* sName, int nColor=0)
: m_szKey(sKey), m_szName(sName), m_nColor(nColor) {}
};
class CLayerData1 //add by fxj 090206
{
public:
CString m_szKey;
CString m_szName;
CString m_szNote;
int m_nColor;
CString m_strLineType; //add by lgy 2012406 增加该参数是为了图层转换线型也需要转换
public:
CLayerData1(const TCHAR* sKey, const TCHAR* sName, const TCHAR* sNote,int nColor=0, const TCHAR* sType = NULL)
: m_szKey(sKey), m_szName(sName), m_szNote(sNote), m_nColor(nColor), m_strLineType(sType){}
};
#if (ADS <= 16)
class CLayerChangeDlg : public GlwCAcUiDialog
{
public:
CLayerChangeDlg(CWnd* pParent = NULL);
virtual ~CLayerChangeDlg();
enum { IDD = IDD_LAYER_CHANGE };
CComboBox m_current;
CComboBox m_goal;
protected:
static int g_iSource,g_iDest;
CString GetFullPath(const TCHAR *szFileName);
BOOL ReadFile(CString szFullName, DList<CLayerData1> &lstLayer);
virtual void DoDataExchange(CDataExchange* pDX);
virtual BOOL OnInitDialog();
void HideDialog(BOOL bFlag);
virtual void OnOK();
};
#else
/////////////////////////////////////////////////////////////////////////
// CLayerChangeDlg 对话框
// mofify by gjm 修改成T20风格
class CLayerChangeDlg : public CModelessDialog
{
DECLARE_DYNAMIC(CLayerChangeDlg)
public:
CLayerChangeDlg(CWnd* pParent = NULL);
virtual ~CLayerChangeDlg();
enum { IDD = IDD_LAYER_CHANGE };
CComboBox m_current;
CComboBox m_goal;
CButton m_btnOK, m_btnCancel;
CStatic m_staCurrent, m_staDest;
protected:
static int g_iSource,g_iDest;
CString GetFullPath(const TCHAR *szFileName);
BOOL ReadFile(CString szFullName, DList<CLayerData1> &lstLayer);//modified by fxj 090206
virtual void DoDataExchange(CDataExchange* pDX);
virtual BOOL OnInitDialog();
void HideDialog(BOOL bFlag);//add by fxj 090105
virtual void OnOK();
DECLARE_MESSAGE_MAP()
};
#endif
struct ClashLayer//add by fxj 090119
{
XString m_sClashName;
DList<CLayerData1> m_lstClashData;
};
//add by fxj 090120
class CLayerGrid : public WDGrid
{
public:
CLayerGrid(DList<ClashLayer> *pLstLayer=NULL);
DList<ClashLayer> *m_pLstLayer;
protected:
virtual void OnCellComboString(WDGridCell&cell,CComboBox&combo); // 准备下拉列表内容
virtual void OnDataChanged(); // 内容改变,支持行列数变化、单元格内容变化
};
// add by fxj 090108图层标准冲突解决(图层转换的子对话框)
class CLayerNameDlg : public GlwCAcUiDialog
{
public:
CLayerNameDlg(DList<ClashLayer> *pLstLayer);
enum { IDD = IDD_LAYER_NAME};
DList<ClashLayer> *m_pLstLayer;
protected:
CLayerGrid m_grid;
virtual BOOL OnInitDialog();
void InitGrid();
virtual void OnOK();
};
struct SLayerStandardRecord
{
CString sLayerKeyword; //图层关键字
CString sLayerName; //图层名
CString sColor; //颜色
CString sLineType; //线型
CString sDescription; //说明
};
#endif