267 lines
10 KiB
C++
267 lines
10 KiB
C++
#ifndef _ELEV_DLG_H_
|
||
#define _ELEV_DLG_H_
|
||
|
||
#if _MSC_VER > 1000
|
||
#pragma once
|
||
#endif // _MSC_VER > 1000
|
||
|
||
#include "Resource.h"
|
||
#include "WDGrid.h"
|
||
//以下类的定义整理by lgy 20120109
|
||
#define WM_GRID_CHANGED WM_USER+1 // sg add 090410
|
||
Adesk::Boolean acedPostCommand(const TCHAR * );
|
||
|
||
static BOOL g_bHatch = FALSE; // 是否实体填充
|
||
static BOOL g_bHasBase = FALSE; // 是否带基线
|
||
static BOOL g_bHasLeader = FALSE; // 是否带引线
|
||
static BOOL g_bHightWrite = FALSE; // 是否手工输入
|
||
// add by zkm
|
||
static BOOL g_bContinue = TRUE; // 是否连标
|
||
static BOOL g_bOrder = FALSE; // 是否自动对齐标注
|
||
static BOOL g_bFirstExecute = TRUE; //总图命令,为TZELEV命令默认值使用
|
||
static double g_nLeaderLen = 7.0;
|
||
static double g_nBaseLen = 7.0;
|
||
// sg add 090209
|
||
static BOOL g_bDote = FALSE; // 是否点样式
|
||
static BOOL g_bStandard = FALSE; // 多行文字输出,是否规范样式,标高加括号
|
||
//modify by lgy 20120111 字高初始化时从程序中读取(即与文字管理一致)
|
||
//static double g_dTextHeight = 3.5;// 字高
|
||
static double g_dTextHeight = GetTextHeightByTs(TS_SYMBOL); // 字高
|
||
// sg add 090212
|
||
static BOOL g_bParentheses = TRUE; // 传统样式,楼层是否加括号
|
||
static BOOL g_bElevSideText = TRUE; // 文字是否齐线端
|
||
//modify by lgy 20120111 文字样式初始化应从程序中读取
|
||
// sg add 090216
|
||
//static CString g_csFontStyle = _T("_TCH_DIM"); // 默认文字样式
|
||
static CString g_csFontStyle = GetTextStyleName(TS_SYMBOL); // 默认文字样式
|
||
// sg add 090220
|
||
static BOOL g_nElevType = 0; // 建筑标高为0,总图标高为1
|
||
static int g_nElevTextAlign = 0; // 总图,普通标高,文字排列方式
|
||
static BOOL g_bUseConversion = FALSE; // 总图,是否自动换算绝对标高
|
||
static CString g_csElevConversion = _T("50"); // 总图,换算关系
|
||
// sg add 090226
|
||
static BOOL g_bCommonElev = TRUE; // 普通标高样式
|
||
// sg add 090311
|
||
static CString g_csAbsoluteElev = _T("50"); // 绝对标高
|
||
static CString g_csRelativeElev = _T(""); // 相对标高或注释
|
||
static BOOL g_bElevMidText = TRUE; // 文字居中
|
||
// sg add 090313
|
||
static TString g_szGridText = _T(""); // 表格内容记忆
|
||
// sg add 120608
|
||
static BOOL g_bHollow = FALSE; // 是否三角形空心标高符号
|
||
static BOOL g_bElevCross = FALSE; // 是否使用十字标高符号
|
||
static CString g_csTextLoc = _T("上部"); // 总图标高默认文字位置,不包含普通标高样式
|
||
|
||
class CElevDlg;
|
||
class CEditMutiElevDlg;
|
||
|
||
// 多层楼层标高编辑对话框中使用的表格,sg add 090407
|
||
class TMutiElevGrid : public WDGrid
|
||
{
|
||
public:
|
||
TMutiElevGrid() {};
|
||
BOOL m_bPrec3;
|
||
|
||
protected:
|
||
virtual void OnDataChanged();
|
||
virtual bool OnModified(WDGridCell&cell, CString &text);
|
||
|
||
// sg add 090506,插入行前,首先COPY当前行内容,解决排顺序问题,防止插入的行内容总在最后
|
||
virtual bool OnBeforeInsertRow(long i, WDGridRow*&pNewRow);
|
||
|
||
public:
|
||
void ArrangeDouble();
|
||
};
|
||
|
||
|
||
// 多层标高编辑对话框,sg add 090401,8.0新功能
|
||
class CEditMutiElevDlg: public CModelessDialog
|
||
{
|
||
// Construction
|
||
public:
|
||
CEditMutiElevDlg(CWnd* pParent = NULL); // standard constructor
|
||
|
||
public: // 与CElevDlg类的交互函数
|
||
void SetPrecision(BOOL bPrec3); // 精确度设置,只用在对话框上显示使用
|
||
void SetCell01(CString csCell01); // 从标高对话框传进来的首层楼层号/解释
|
||
// 从标高对话框传进来的已知的楼层号,用于初始化表格
|
||
void SetKnownElev(XStringList &lstElevs);
|
||
|
||
// 返回给标高对话框的表格内容
|
||
void GetGridTexts(XStringList &lstElevs, XStringList &lstFloors);
|
||
|
||
// Dialog Data
|
||
protected:
|
||
//{{AFX_DATA(CEditMutiElevDlg)
|
||
enum { IDD = IDD_DIALOG_MUTIELEVEDIT };
|
||
CComboBox m_cmbLHeight;
|
||
CComboBox m_cmbLNum;
|
||
//}}AFX_DATA
|
||
|
||
static CString m_csLHeight; // 层高(记忆使用)
|
||
static CString m_csLNum; // 层数
|
||
|
||
TMutiElevGrid m_grid; // 表格
|
||
BOOL m_bAutoFloorInfo; // 自动填充楼层号
|
||
CString m_csFirstFloor; // 首层楼层号
|
||
|
||
BOOL m_bPrec3; // 是否精确到小数点后第三位
|
||
CString m_csCell01; // 标高对话框传进来的首层楼层号/解释
|
||
|
||
protected:
|
||
void AnalysisCell01(); // 解析楼层号/解释,填充m_bAutoFloorInfo、m_csFirstFloor
|
||
double GetLHeight(); // 获取层高,已换算到M单位
|
||
|
||
CString GetFormatText(XString szText); // 按照传进来的精度显示标高,非数字不做处理
|
||
CString GetFormatText(double dElev); // 按照传进来的精度显示标高
|
||
|
||
// Overrides
|
||
// ClassWizard generated virtual function overrides
|
||
//{{AFX_VIRTUAL(CEditMutiElevDlg)
|
||
protected:
|
||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
||
//}}AFX_VIRTUAL
|
||
|
||
// Implementation
|
||
protected:
|
||
// Generated message map functions
|
||
//{{AFX_MSG(CEditMutiElevDlg)
|
||
virtual BOOL OnInitDialog();
|
||
afx_msg void OnButtonAddElev();
|
||
afx_msg void OnButtonClearList();
|
||
afx_msg void OnChangeEditFirstFloor();
|
||
afx_msg void OnBnClickedAutoFloor();
|
||
afx_msg LRESULT OnGridChanged(WPARAM wParam, LPARAM lParam); // sg add 090410
|
||
//}}AFX_MSG
|
||
DECLARE_MESSAGE_MAP()
|
||
};
|
||
|
||
// 标高,sg modify 090209,满足8.0的新需求
|
||
class CElevDlg:public CModelessDialog
|
||
{
|
||
protected:
|
||
WDGrid m_grid;
|
||
|
||
public:
|
||
CElevDlg(TDbSymbElevation *pElev);
|
||
CElevDlg(CWnd* pParent = NULL);
|
||
virtual ~CElevDlg();
|
||
|
||
BOOL IsSitePlanDlg(){return m_bSitePlanDlg;}//设置为总图标高单独对话框
|
||
void SetSitePlanDlg(BOOL bSitePlan);//设置为总图标高单独对话框
|
||
// sg add 120609,下面这些函数用于提供外界与上面定义的静态变量交互使用
|
||
BOOL IsHightWrite () const;
|
||
BOOL IsHasBase() const;
|
||
BOOL IsHasLeader() const;
|
||
void SetLeaderLen(double dLen);
|
||
void SetBaseLen(double dLen);
|
||
BOOL IsOrder() const;
|
||
|
||
virtual void DoDataExchange(CDataExchange*pDX);
|
||
virtual BOOL OnInitDialog();
|
||
virtual void OnOK();
|
||
|
||
// add by zkm
|
||
void SetEntPoint(TDbSymbElevation * pElev); // 关联标注对象
|
||
void UpdataEnt();
|
||
void UpdateEntText();
|
||
|
||
void SetGridEnableWrite(BOOL bWrite); // 表格设置可写
|
||
void UpdateGrid(double newValue); // 更新Grid值
|
||
void UpDateGridToStar(); // 清空标注的附加内容
|
||
void SetArchElevGrid(); // sg add 090222,设置表格行数、表头
|
||
void InitGridAndTextFromEnt(); // sg add 090222,用对象中的文字内容,填充表格
|
||
|
||
void SetOrderFa(BOOL bOrder);
|
||
|
||
void GetTextHeight(); // sg add 090209,获取文字字高
|
||
void LoadTextStyle(); // sg add 090209,加载文字样式
|
||
|
||
void SetTabCurPage1(); // sg add 090220,设置当前标高页面控件显示情况
|
||
void SetTabCurPage2(); // sg add 090227,强制对标高当前选择页面进行规定
|
||
void SetShowByUseConversion(); // sg add 090311,根据是否自动换算,设置各控件是否显示
|
||
void SetTextLocationByStyle(); // sg add 090311
|
||
|
||
BOOL IsDigitEle(const XString &sText); // sg add 090223,判断输入内容是否是数字
|
||
void CalAbsoluteElev(); // sg add 090223,用换算关系、相对标高,计算绝对标高
|
||
void CalRelativeElev(); // sg add 090312,用换算关系、绝对标高,计算相对标高
|
||
|
||
DECLARE_MESSAGE_MAP()
|
||
virtual void PostNcDestroy(){ if(m_bDlgType)delete this; }
|
||
afx_msg void OnPickHatch();
|
||
afx_msg void OnPickBaseLine();
|
||
afx_msg void OnPickLeadLine();
|
||
afx_msg void OnOrder();
|
||
afx_msg void OnContinueDim();
|
||
afx_msg void OnPrecision();
|
||
afx_msg void OnDestroy();
|
||
afx_msg void OnClose();
|
||
afx_msg void OnActivate(UINT nState,CWnd*pWndOther,BOOL bMinimized);
|
||
afx_msg void OnPickCheckWriter();
|
||
|
||
void OnCheckHatch(); // 以下三个函数未使用
|
||
void OnCheckBaseLine();
|
||
void OnCheckLeader();
|
||
|
||
afx_msg void OnPickDote(); // sg add 090209,圆点样式
|
||
afx_msg void OnPickHollow(); // sg add 120608,三角形空心标高符号
|
||
afx_msg void OnPickCommonElev(); // sg add 090226,普通样式
|
||
afx_msg void OnButtonTextHeight(); // sg add 090212,字高、文字样式
|
||
afx_msg void OnPickCross(); //十字标高符号
|
||
afx_msg void OnSelchangeComboFongstyle();
|
||
afx_msg void OnSelchangeComboTextLoc(); // sg add 120608,总图标高默认文字位置,不包含普通标高样式
|
||
afx_msg void OnSelchangeComboTextHeight();
|
||
afx_msg void OnEditchangeComboTextHeight();
|
||
afx_msg void OnBnClickedSideText(); // sg add 090217,齐线端、规范样式、加括号
|
||
afx_msg void OnBnClickedStandard();
|
||
afx_msg void OnBnClickedParentheses();
|
||
afx_msg void OnBnClickedUseConversion(); // sg add 090222,自动计算换算标高
|
||
afx_msg void OnChangeEditConversion(); // sg add 090223,修改换算关系值
|
||
afx_msg void OnSelchangeTabElevType(NMHDR* pNMHDR, LRESULT* pResult); // sg add 090220,切换标高类型
|
||
afx_msg void OnRadioElevAlignType1(); // sg add 090224,上下排列
|
||
afx_msg void OnRadioElevAlignType2(); // sg add 090301,左右排列
|
||
|
||
afx_msg void OnBnClickedUpText(); // sg add 090311,文字居中
|
||
afx_msg void OnChangeEditAbsoluteElev(); // sg add 090311,修改绝对标高
|
||
afx_msg void OnChangeEditRelativeElev(); // sg add 090311,修改相对标高
|
||
|
||
afx_msg void OnButtonAddMutiElev(); // sg add 090401,调用自动多层标高
|
||
|
||
public:
|
||
static CElevDlg *g_pElevDlg;
|
||
TDbSymbElevation *m_pElev;
|
||
BOOL m_bUpdateText;
|
||
BOOL m_bHatchTou; // 当拖动引线长度时控制填充按钮不可用
|
||
BOOL m_bOrderTou; // 选择第一点时对齐不可选(无对齐目标)
|
||
BOOL m_bDlgType; // FALSE 模态 TRUE 非模态
|
||
|
||
CString m_csTextHeight; // sg add 090209,字高、字体样式、文字位置
|
||
CString m_csFontStyle;
|
||
CString m_csTextLoc;
|
||
|
||
protected:
|
||
enum { IDD = IDD_ELEV };
|
||
CButton m_ButHatch;
|
||
CButton m_ButBaseLine;
|
||
CButton m_ButLeadLine;
|
||
CButton m_ButContinue;
|
||
CButton m_ButOrder;
|
||
CComboBox m_ComBox;
|
||
CButton m_Rider;
|
||
|
||
CButton m_ButDote; // sg add 090209,圆点样式
|
||
CButton m_ButHollow; // sg add 120608,空心三角形地坪标高
|
||
CComboBox m_cmbTextHeight; // sg add 090209,字高、字体样式、文字位置
|
||
CComboBox m_cmbStyleName;
|
||
CComboBox m_cmbTextLoc;
|
||
|
||
CTabCtrl m_Tab; // sg add 090220,属性页
|
||
CButton m_ButCommon; // sg add 090226,普通标高样式
|
||
CButton m_ButCross; //jsx add 160513,十字样式标高
|
||
protected:
|
||
void InitData();
|
||
void UpdateBitmap(); // 该函数无实现
|
||
|
||
BOOL m_bSitePlanDlg; //设置总图标高独立对话框
|
||
};
|
||
#endif |