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

1144 lines
33 KiB
C++

#pragma once
#include "resource.h"
#include "AecDbSymbArrow.h"
#include "AecDbSymbElevation.h"
#include "AecDbSymbMultiLeader.h"
#include "aecdbsymbsection.h"
#include "WDGrid.h"
class CModelessDialog : public CAcUiDialog//, public CCapBtnWnd
{
protected:
BOOL m_bThickFrame;
public:
BOOL m_bModeless;
UINT m_bChangeDocSwitch;//Use for Setfocus to AutoCAD.
CToolTipCtrl m_wndToolTip;
BOOL m_bAllowAutoHide;
BOOL m_bHide;
BOOL m_bAutoHide;
int m_nCapHeight;
int m_nBorderHeight;
int m_nMaxHeight;
int m_nYStep;
int m_nStepNum;//>0代表正在缩放
int m_nCurStep;
CDC *m_pMemDC;
CWindowDC *m_pWndDC;
CBitmap *m_pBitmap;
COLORREF m_clrDraw;
// Construction
public:
DECLARE_DYNAMIC(CModelessDialog)
CModelessDialog(UINT nIDTemplate, CWnd* pParent = NULL); // standard constructor
void WriteReg(int x, int y);
BOOL ReadReg(int &x, int &y);
INT_PTR DoModal() {
m_bModeless = FALSE;
return CAcUiDialog::DoModal();
}
bool IsShowNormal()const { return !m_bHide && m_nStepNum == 0; }
void MaxShow();
void AnimateMoveWindow(int step);
BOOL AddTip(UINT idControl);
BOOL AddTip(UINT idControl, const TCHAR *str);
void LockAutoHide();
void UnlockAutoHide();
protected:
virtual BOOL PreTranslateMessage(MSG* pMsg);
virtual BOOL OnInitDialog();
DECLARE_MESSAGE_MAP()
afx_msg void OnDestroy();
afx_msg void OnClose();
afx_msg LONG_PTR onAcadKeepFocus(UINT_PTR, LONG_PTR);
afx_msg void OnTimer(UINT_PTR nIDEvent);
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
afx_msg void OnNcLButtonDown(UINT nHitTest, CPoint point);
virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam);
int MessageBox(LPCTSTR lpszText, LPCTSTR lpszCaption = NULL, UINT nType = 0);
};
class XPushAutoHide
{
public:
BOOL m_bAutoHide;
CModelessDialog *m_pDialog;
public:
XPushAutoHide(CModelessDialog*pDlg);
~XPushAutoHide();
};
class CSectionDlg : public CModelessDialog
{
DECLARE_DYNAMIC(CSectionDlg)
public:
CSectionDlg(CWnd* pParent = NULL);
virtual ~CSectionDlg();
enum { IDD = IDD_DLG_SECTION };
CString GetSectionNum(); //获得剖切编号
CString GetNumStyle(); //获得剖切编号文字样式
double GetNumHeight(); //获得剖切编号文字高度
CString GetDrawNum(); //获得剖面图号
int GetLocal(); //获得标注位置
int GetDirect(); //获得标注方向
int GetSectionMode(); //获得布置剖面符号的方式
CString GetDrawingStyle(); //获得剖面图号文字样式
double GetDrawHeight(); //获得剖面图号字高
BOOL GetIsShowDrawText(); //是否显示剖面图号
BOOL GetIsChangeType();
void SetIsChangeType(BOOL bIs);
virtual BOOL DestroyWindow();
protected:
virtual void DoDataExchange(CDataExchange* pDX);
virtual BOOL OnInitDialog();
DECLARE_MESSAGE_MAP();
afx_msg void OnBtnBlickA();
afx_msg void OnBtnBlickB();
afx_msg void OnBtnBlickC();
afx_msg void OnBtnBlickD();
afx_msg void OnBnClickDrawNum();
afx_msg void OnBnClickedBtnWordhight();
afx_msg void OnBnClickedBtnDrawingheight();
afx_msg BOOL OnToolTipText(UINT, NMHDR* pNMHDR, LRESULT* pResult);
void CheckTypeButton(); //add by lgy 20120525 设置BUTTON显示状态
private:
//void createToolBar();
void LoadTextStyle(); //加载文字样式
static CString m_strSectionNum; //剖切编号
static CString m_strStyle; //剖切编号文字样式
static CString m_strHeight; //剖切编号文字字高
static BOOL m_bCheck; //剖面编号选择框
static CString m_strDrawingNum; //剖面编号
static int m_iLocal; //标注位置
static int m_iDirect; //标注方向
static CString m_strDrawingHeight; //剖面图号字高
static CString m_strTextStyle; //剖面图号文字样式
static int m_nSectionMode; //布置剖面符号的方式
CComboBox m_cmbStyleName; //剖切编号文字样式
CComboBox m_cmbDrawStyle; //剖切符号文字样式
//CToolBarCtrl m_toolbar; //绘制方式工具条
BOOL m_bStyeChange;
};
class CCharDlg : public CDialog
{
// Construction
public:
CCharDlg(CWnd* pParent = NULL); // standard constructor
~CCharDlg();
// Dialog Data
//{{AFX_DATA(CCharDlg)
enum { IDD = IDD_DIALOG_CHAR };
//CEdit m_edit_char;
CComboBox m_combo_type;
CString m_character;
//}}AFX_DATA
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CCharDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(CCharDlg)
virtual BOOL OnInitDialog();
afx_msg void OnPaint();
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
afx_msg void OnSelchangeComboType();
virtual void OnCancel();
afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
virtual void OnOK();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
void drawPane();
void writechar(char m_char[][3], int count);
void drawSmallPane();
void delSmallPane();
BOOL Check(CPoint point);
static char m_charGreece[][3];
static char m_charMath[][3];
static char m_charSerial[][3];
static char m_charRomaSerial[][3];
static char m_charSpecific[][3];
static char m_charInterpunction[][3];
CPen m_pen;
int m_left, m_top;
int m_wndWidth, m_wndHeight;
int m_Hdistance, m_Vdistance;
int m_countChar, m_indexCombo;
CFont *m_pFont;
};
class CBaseTextDlg : public CModelessDialog
{
// Construction
public:
DECLARE_DYNAMIC(CBaseTextDlg)
CBaseTextDlg(UINT IDD, CWnd* pParent = NULL); // standard constructor
CString m_strInputText;
CToolBar m_toolbar;
BOOL GetPosition(int& h, int& l);
// Dialog Data
//{{AFX_DATA(CBaseTextDlg)
CComboBox m_comboStyleName;
static CString m_strFontStyle;
CString m_strHeight;
//}}AFX_DATA
// Add by lcf on 2005-06-24
BOOL m_bPost;
CWnd *m_pCurWnd;
// Add by lcf On 2005-07-01
int m_nOperCode;
// sg add 090324,记录调用“词库”时,是否只支持“单行文字”
BOOL m_bNeedSingleLineText;
BOOL GetPickText();
void GetTextHeight();
virtual CWnd* GetCurWnd() = 0;
virtual void UpdateInputText();
virtual void Dlg2Obj(AecXDbSymbWithText *pText);
virtual void Obj2Dlg(AecXDbSymbWithText *pText);
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CBaseTextDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
virtual void OnOK();
//}}AFX_VIRTUAL
afx_msg BOOL OnToolTipText(UINT nID, NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnChar(UINT nID); // ON_COMMAND_RANGE handler
afx_msg void OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized);
afx_msg void OnClose();
// Implementation
protected:
void LoadTextStyle();
// Generated message map functions
//{{AFX_MSG(CBaseTextDlg)
virtual BOOL OnInitDialog();
afx_msg void OnSelchangeComboFongstyle();
afx_msg void OnButtonTextHeight();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
protected:
static double g_nHeight;
};
class CArrowTextDlg : public CBaseTextDlg
{
// Construction
public:
DECLARE_DYNAMIC(CArrowTextDlg)
CArrowTextDlg(CWnd* pParent = NULL); // standard constructor
// Dialog Data
//{{AFX_DATA(CArrowTextDlg)
enum { IDD = IDD_ARROW_TEXT };
CComboBox m_comboHistory;
//}}AFX_DATA
static CString g_csArrowSize;
static BOOL m_bContinue; // Add by lcf on 2005-06-29
void AddToRecent();
XStringList m_lstHistory;
CEdit m_editInputText;
static CString m_csText; // sg add 090123,等同与m_strInputText,只起保存作用
static CString m_csText2; // sg add 090108
CComboBox m_comboText2;
virtual void Dlg2Obj(AecXDbSymbArrow *pText);
virtual void Obj2Dlg(AecXDbSymbArrow *pText);
void LoadHisText();
virtual CWnd* GetCurWnd();
virtual void UpdateInputText(); // sg add 090225
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CArrowTextDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(CArrowTextDlg)
virtual BOOL OnInitDialog();
virtual void OnOK();
afx_msg void OnSelchangeComboHistoryText();
afx_msg void OnSelchangeComboText2(); // sg add 090108
afx_msg void OnSelchangeComboAlignment();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
class CCoordDlg : public CAcUiDialog
{
DECLARE_DYNAMIC(CCoordDlg)
public:
CCoordDlg(UINT resId, CWnd* pParent = NULL); // 标准构造函数
virtual ~CCoordDlg();
// 对话框数据
enum { IDD = IDD_COORD };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
virtual BOOL OnInitDialog();
DECLARE_MESSAGE_MAP()
public:
// [10/22/2007 nsh]
static CString m_strAngle;
static CCoordDlg * m_pSelf;
static BOOL m_bFixAngle;
//--end--
static int s_iUnitType;
static int s_iDataType;
int m_iPreci;
int m_iABCoord;
int m_nArrowStyle;
double m_fAngle;
CComboBox m_cmbUnit;
CComboBox m_cmbPreci;
CButton m_buttonType;
CStatic m_staticType;
afx_msg void OnCbnSelchangeComboUnit();
afx_msg void OnBnClickedType();
afx_msg void OnNorthThumb();
afx_msg void OnRefPoint();
afx_msg void OnPickNorth();
afx_msg void OnClickRadio();
// [10/22/2007 nsh]
afx_msg void OnClickCheck1();
void OnOK();
static bool IsWcsPoint() { return s_iDataType == 0; }
static bool IsUcsPoint() { return s_iDataType == 1; }
static bool IsRedLinePoint() { return s_iDataType == 2; }
afx_msg void OnBnClickedUcs();
};
class CBatchDimDlg : public CModelessDialog
{
public:
DECLARE_DYNAMIC(CBatchDimDlg)
CBatchDimDlg(CWnd* pParent = NULL);
~CBatchDimDlg();
enum { IDD = IDD_DLG_DIMSOME };
public:
BOOL GetIsPolyVertex(); // 是否是多段线顶点
BOOL GetIsLineVertex(); // 是否是直线、弧线端点
BOOL GetIsElevLoc(); // 是否是标高符号插入点
BOOL GetIsIntersectPt(); // 是否是交点
BOOL GetIsPoint(); // 是否是点
BOOL GetIsCirclePt(); // 是否是圆心点
BOOL GetIsAppointLayer();
CString GetStrLayerName();
void SelectEntInDraw();
public:
BOOL m_bPost; // 标记是否当前状态是在从屏幕取实体
protected:
virtual void DoDataExchange(CDataExchange* pDX);
virtual BOOL OnInitDialog();
DECLARE_MESSAGE_MAP()
afx_msg void OnClickAllSelect();
afx_msg void OnClickAllClear();
afx_msg void OnBnClickAppointlayer();
afx_msg void OnClose();
public:
afx_msg void OnClickSelectInDraw();
protected:
static BOOL m_bPolyVertex; // 多段线端点
static BOOL m_bLineVertex; // 直线、弧线端点
static BOOL m_bElevLoc; // 标高符号插入点
static BOOL m_bIntersectPt; // 交点
static BOOL m_bPoint; // 点
static BOOL m_bCirclePt; // 圆心
static CString m_strDimlayers; // 图层
static BOOL m_bAppoint;
CStringArray m_aryAddLayer; // 添加的图层
};
//以下类的定义整理by lgy 20120109
#define WM_GRID_CHANGED WM_USER+1 // sg add 090410
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;// 字高
double GetTextHeightByTs(TTextStyle ts);
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"); // 默认文字样式
CString GetTextStyleName(TTextStyle ts);
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("上部"); // 总图标高默认文字位置,不包含普通标高样式
// 标高,sg modify 090209,满足8.0的新需求
class CElevDlg :public CModelessDialog
{
protected:
WDGrid m_grid;
public:
CElevDlg(AecXDbSymbElevation *pElev);
CElevDlg(CWnd* pParent = NULL);
virtual ~CElevDlg();
BOOL IsSitePlanDlg() { return TRUE; }//设置为总图标高单独对话框
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(AecXDbSymbElevation * 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;
AecXDbSymbElevation *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; //设置总图标高独立对话框
};
class CLeaderDlg : public CBaseTextDlg
{
// Construction
public:
DECLARE_DYNAMIC(CLeaderDlg)
CLeaderDlg(BOOL bEdit, CWnd* pParent = NULL); // standard constructor
CLeaderDlg(BOOL bEdit, UINT resID, CWnd*pParent = NULL);
virtual void Dlg2Obj(AecXDbSymbMultiLeader *pText);
virtual void Obj2Dlg(AecXDbSymbMultiLeader *pText);
void SetCheckBoxStatus(BOOL bEnableFlag = TRUE);
// Dialog Data
//{{AFX_DATA(CLeaderDlg)
enum { IDD = IDD_LEADER_TEXT };
CComboBox m_comboInputText;
CComboBox m_comboInputText1;
//modify by lgy 20120206 固定角度要有记忆功能
//CString m_sFixAngle;
//BOOL m_bFixAngle;
static CString m_sFixAngle;
static BOOL m_bFixAngle;
//}}AFX_DATA
static CString g_csArrowSize;
static CString m_strInputUp;
static CString m_strInputDown;
static BOOL m_bContinue; // Add by lcf on 2005-06-29
static BOOL m_bAllPtsOnLine; // sg add 090327,是否将其他标注点都绘制在一条引线上
static int m_nTextAlign; // sg add 090402,增加文字相对于基线的对齐方式
static int s_iLeaderStyle; //引线平行复选框 add by lxb on 111229
int GetLeaderStyle();
void AddToRecent();
XStringList m_lstHistory, m_lstHistory1;
BOOL m_bEditObj;
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CLeaderDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
virtual CWnd* GetCurWnd();
virtual void UpdateInputText();
// Implementation
protected:
void LoadHisText();
// Generated message map functions
//{{AFX_MSG(CLeaderDlg)
virtual BOOL OnInitDialog();
virtual void OnOK();
afx_msg void OnUnChangeAngle();
afx_msg void OnCHKOnline();
afx_msg void OnCHKLeader();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
class CEditLeaderDlg : public CLeaderDlg
{
public:
DECLARE_DYNAMIC(CEditLeaderDlg)
CEditLeaderDlg(CWnd *pParent = NULL);
enum { IDD = IDD_EDIT_LEADER };
DECLARE_MESSAGE_MAP()
afx_msg void OnBnClickedAdddim();
afx_msg void OnBnClickedCheckOnline();
afx_msg void OnBnClickedChkEditleaer();
};
class CCloudLineDlg : public CModelessDialog
{
DECLARE_DYNAMIC(CCloudLineDlg)
public:
CCloudLineDlg(CWnd* pParent = NULL);
~CCloudLineDlg();
enum { IDD = IDD_DLG_CLOUDLINE };
public:
BOOL GetIsDrawing(); // 手绘还是普通
BOOL GetIsEdition(); // 是否显示版次
double GetMaxValue(BOOL bAsPaperUnit = TRUE);
double GetMinValue(BOOL bAsPaperUnit = TRUE);
double GetEndWidth();
void GetTextParam(BOOL &bHasText, CString &csText, double &dHeight, AcDbObjectId &idTextStyle);
int GetDrawLineStyle(); // 绘制云线的方式
// 是否改变绘制方式
bool GetIsChangeType();
void SetIsChangeType(bool bIs);
virtual BOOL DestroyWindow();
public:
void GetCloudLinePoly(const XCurveSegment &cvSegment, XPoly2D &polyModi);
void GetCloudLinePoly(const XPoly2D &polyOld, XPoly2D &polyModi);
protected:
virtual void DoDataExchange(CDataExchange* pDX);
virtual BOOL OnInitDialog();
DECLARE_MESSAGE_MAP();
afx_msg void OnClickEdition();
afx_msg void OnClickEditionA();
afx_msg void OnClickEditionB();
afx_msg void OnClickEditionC();
afx_msg void OnClickEditionD();
afx_msg void OnClickBtnTextHeight();
afx_msg BOOL OnToolTipText(UINT, NMHDR* pNMHDR, LRESULT* pResult);
//void createToolBar(); // 创建工具条
void InitTextType(); // 初始化文字类型
void CheckTypeButton(); // add by lgy 20120522 设置BUTTON显示状态
protected:
static BOOL m_bCommon; // 控制是手绘还是普通
static int m_iMaxValue; // 最大弧长
static int m_iMinValue; // 最小弧长
static CString m_strType; // 文字样式
static CString m_strEdition;// 版次文字
static CString m_strHeight; // 字高
static BOOL m_bEdit; // 是否编辑版次
static int m_iDrawLineStyle;// 绘制云线的方式
CComboBox m_cmbDrawStyle;
bool m_bStyeChange; // 保存绘制云线的方式是否改变
//CToolBarCtrl m_toolbar;
};
class CCharToolbarDlg : public CModelessDialog
{
public:
DECLARE_DYNAMIC(CCharToolbarDlg)
CCharToolbarDlg(UINT IDD, CWnd* pParent = NULL); // standard constructor
CString m_strInputText;
CToolBar m_toolbar;
CWnd* m_ctrlInputText;
BOOL m_bNeedSingleLineText;
BOOL GetPosition(int& h, int& l);
int m_nOperCode;
BOOL GetPickText();
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
afx_msg BOOL OnToolTipText(UINT nID, NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnChar(UINT nID); // ON_COMMAND_RANGE handler
protected:
virtual BOOL OnInitDialog();
DECLARE_MESSAGE_MAP()
};
class AecXDbDrawingName;
class CDrawingNameDlg : public CCharToolbarDlg
{
// Construction
public:
DECLARE_DYNAMIC(CDrawingNameDlg)
CDrawingNameDlg(BOOL bEdit, CWnd* pParent = NULL); // standard constructor
// Dialog Data
//{{AFX_DATA(CDrawingNameDlg)
enum { IDD = IDD_DRAWING_NAME, IDD1 = IDD_DRAWING_NAME1};
CComboBox m_comboName;
CComboBox m_comboScale;
CComboBox m_comboStyleName1;
CComboBox m_comboStyleName2;
static CString m_csScaleText;
static CString m_strFontStyle1;
static CString m_strFontStyle2;
static CString m_strHeight1;
static CString m_strHeight2;
static int m_nStyle;
static BOOL m_bNoScale;
static BOOL m_bContinue;
//}}AFX_DATA
BOOL m_bPost;
bool m_bChangeCurTextStyle;
XStringList m_lstStyle, m_lstHistory;
double GetTextHeight2() { return _tstof(m_strHeight2); }//ok
void Dlg2Obj(AecXDbDrawingName* pDrawingName);
void Obj2Dlg(AecXDbDrawingName* pDrawingName);
void GetTextHeight();
void AddToRecent();
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CDrawingNameDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
virtual BOOL OnInitDialog();
virtual void OnOK();
//}}AFX_VIRTUAL
// Implementation
public:
//virtual BOOL DestroyWindow();
protected:
//CGsPreviewCtrl mPreviewCtrl;
//AcDbDatabase mPreviewDb;
//bool bPreviewReady;
int m_nHeightType;
//void UpdatePreview();
//void Draw(AcDbBlockTableRecord*pSpace, AcGePoint3d&center, double&length, double &width);
virtual const TCHAR *GetHistoryFileName();
void LoadHisText();
void LoadTextStyle();
// Generated message map functions
//{{AFX_MSG(CDrawingNameDlg)
afx_msg void OnBnClickedUpdate();
afx_msg void OnCbnSelchangeComboHeight1();
afx_msg void OnCbnSelchangeComboHeight2();
afx_msg void OnButtonTextHeight1();
afx_msg void OnButtonTextHeight2();
afx_msg void OnCbnSelchangeNameList();
afx_msg void OnCbnSelchangeScaleList();
afx_msg void OnBnClickedNoScale();
afx_msg void OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized);
afx_msg void OnClose();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
class AecXDbSymbDrawingIndex;
class CDrawingIndexDlg : public CModelessDialog
{
DECLARE_DYNAMIC(CDrawingIndexDlg)
public:
CDrawingIndexDlg(CWnd* pParent = NULL);
virtual ~CDrawingIndexDlg();
enum { IDD = IDD_DRAWINGINDEX_TEXT };
virtual BOOL OnInitDialog();
afx_msg void OnBnClickedOk();
afx_msg void OnBnClickedChkScale();
afx_msg void OnBnClickedBtnFonthight();
afx_msg void OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized);
afx_msg void OnClose();
CString GetIndexLabel();
CString GetDrawingLabel();
CString GetTextStyle();
CString GetScaleText();
double GetTextHight();
bool IsDrawScale();
BOOL IsOpTextHeight();
void TextHight();
void UpdateDataEx();
void Obj2Dlg(AecXDbSymbDrawingIndex *pEnt);
void Dlg2Obj(AecXDbSymbDrawingIndex* pEnt);
//add by lgy 20120111 返回比例的文字样式
CString GetScaleStyle();
protected:
//add by lgy 20120110 根据对话框是模态对话框还是非模态对话框调整其大小
void AdjustDlgRect();
virtual void DoDataExchange(CDataExchange* pDX);
DECLARE_MESSAGE_MAP()
void LoadTextStyle();//加载文字样式
private:
static CString s_sIndexLabel; //索引编号
static CString s_sDrawingLabel; //索引图号
static CString s_sTextStyle; //文字样式
//modify by lgy 20120206 索引图名中比例应该设置成为1:的形式
//static int s_iScale; //比例值
static CString s_strScale; //比例值
static double s_dTextHight; //字高
static int s_iCheck; //记录比例设置
//add by lgy 20120110 保存新添加文字样式
static CString s_sWorldStyle;
//存在比例标识(模态显示)
BOOL m_bScale;
//对话框退出标志
bool m_bClose;
//点击字高标识
BOOL m_bTextHeight;
// sg add 120706,文字样式控制变量
CComboBox m_cmbFontStyle;
CComboBox m_cmbWordStyle;
};
class AecXDbSymbIndexPointer;
class CIndexDimDlg : public CBaseTextDlg
{
// Construction
public:
DECLARE_DYNAMIC(CIndexDimDlg)
CIndexDimDlg(BOOL bEdit, CWnd* pParent = NULL); // standard constructor
CIndexDimDlg(BOOL bEdit, UINT Id, CWnd* pParent = NULL);
virtual void Dlg2Obj(AecXDbSymbIndexPointer *pText);
virtual void Obj2Dlg(AecXDbSymbIndexPointer *pText);
// Dialog Data
//{{AFX_DATA(CIndexDimDlg)
enum { IDD = IDD_INDEXDIM_TEXT };
CComboBox m_comboInputText;
CComboBox m_comboInputText1;
CString m_sFixAngle;
BOOL m_bFixAngle;
//}}AFX_DATA
static CString m_strInputUp;
static CString m_strInputDown;
static CString m_strIndex;
static CString m_strDrawing;
XStringList m_lstHistory, m_lstHistory1;
static int m_iIndexType;
BOOL m_bEditObj;
static BOOL m_bContinue; // Add by lcf on 2005-06-29
static BOOL m_bAddIndex; // sg add 090122,是否添加索引范围
static int m_nTextAlign; // sg add 090402,增加文字相对于基线的对齐方式
static BOOL m_bDimOnExtent; // lgh add 101216, 是否在延长线上标注文字
static BOOL m_bMoreCut; // lgh add 101216,是否绘制多段剖切线
static BOOL m_bAddTurn; // lgh add 101216, 是否添加一个转折点
static CString m_strDimStyle; // lgh add 101216, 标注文字样式。
CComboBox m_cmbDimStyle; // lgh add 101215, 标注文字样式
void AddToRecent();
void UpdateVisible(BOOL bVisible);
void SetSourceExtentVisible(BOOL bVisible); // sg add 090415,设置“添加索引范围”是否可见
// lgh add 101220,获取文字的属性,用于计算延长线的长度。
BOOL GetExtendsProp(CString &strUp, CString &strDown, double &dHei, AcDbObjectId &textStyle);
// 剖切索引绘制时的界面显示
void SetSectRunView(BOOL bVisible);
// 分别获取上不标注和下部标注的长度(绝对长度)
double GetUpDimLen();
double GetDownDimLen();
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CIndexDimDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
void LoadHisText();
virtual CWnd* GetCurWnd();
virtual void UpdateInputText();
void LoadDimTextStyle();
// Generated message map functions
//{{AFX_MSG(CIndexDimDlg)
virtual BOOL OnInitDialog();
virtual void OnOK();
afx_msg void OnCheckAngle();
void ShowFixAngle(); // [11/12/2007 nsh]
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
class AecXDbSymbComposing;
class CComposingDlg : public CBaseTextDlg
{
// Construction
public:
DECLARE_DYNAMIC(CComposingDlg)
CComposingDlg(CWnd* pParent = NULL); // standard constructor
virtual void Dlg2Obj(AecXDbSymbComposing *pText);
virtual void Obj2Dlg(AecXDbSymbComposing *pText);
// Dialog Data
//{{AFX_DATA(CComposingDlg)
enum { IDD = IDD_COMPOSING_TEXT };
CEdit m_editInputText;
// int m_nSide; // sg delete 081103
//}}AFX_DATA
static BOOL m_bContinue; // Add by lcf on 2005-06-29
static int m_nSide; // sg add 081103,保存上次的“标注方式”
// add by xly on 100916 支持圆点标注
static BOOL m_bHasCirPoint; // 是否有圆点
static CString m_csPointSize; // 圆点大小
BOOL m_bHasPoint; // 是否有标注点,对象编辑时使用
CString m_csPointSizeTemp;// 圆点大小标记
// add by xly on 100916,设置对话框控件不可用
void SetLableEnable(BOOL bShow);
AecXDbSymbComposing *m_pComposing; // add by xly on 101227 对象编辑时使用
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CComposingDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
virtual CWnd* GetCurWnd();
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(CComposingDlg)
virtual BOOL OnInitDialog();
afx_msg void OnSize(UINT nType, int cx, int cy);
afx_msg void OnHasPoint(); // add xly on 100916
afx_msg void OnButtonAddPoint();// add by xly on 100921
afx_msg void OnKillFocusPointSize();// add by xly on 101221
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
class CEditIndexDimDlg : public CIndexDimDlg
{
// Construction
public:
CEditIndexDimDlg(CWnd *pParent = NULL); // standard constructor
// Dialog Data
//{{AFX_DATA(CEditIndexDimDlg)
enum { IDD = IDD_EDIT_INDEXDIM };
// NOTE: the ClassWizard will add data members here
//}}AFX_DATA
AecXDbSymbIndexPointer *m_pTextAttached;
// 设置关联的TDbSymbIndexPointer
void AttachObject(AecXDbSymbIndexPointer *pText);
// 调整延长线属性
void AdjustExtentProp();
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CEditIndexDimDlg)
protected:
virtual void DoDataExchange(CDataExchange *pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(CEditIndexDimDlg)
// NOTE: the ClassWizard will add member functions here
//}}AFX_MSG
virtual BOOL OnInitDialog();
afx_msg void OnAddCut();
DECLARE_MESSAGE_MAP()
};
class CEditSectionDlg : public CModelessDialog
{
DECLARE_DYNAMIC(CEditSectionDlg)
public:
CEditSectionDlg(CWnd *pParent = NULL);
virtual ~CEditSectionDlg();
enum { IDD = IDD_DLG_EDITSECTION };
CString GetSectionNum(); //获得剖切编号
CString GetNumStyle(); //获得剖切编号文字样式
double GetNumHeight(); //获得剖切编号文字高度
CString GetDrawNum(); //获得剖面图号
int GetLocal(); //获得标注位置
int GetDirect(); //获得标注方向
CString GetDrawingStyle(); //获得剖面图号文字样式
double GetDrawHeight(); //获得剖面图号字高
BOOL GetIsShowDrawText(); //是否显示剖面图号
void Dlg2Obj(AecXDbSymbSection *pSection);
void Obj2Dlg(AecXDbSymbSection *pSection);
protected:
virtual void DoDataExchange(CDataExchange *pDX);
virtual BOOL OnInitDialog();
DECLARE_MESSAGE_MAP();
afx_msg void OnBnClickDrawNum();
afx_msg void OnBnClickedBtnWordhight();
afx_msg void OnBnClickedBtnDrawingheight();
private:
void SetButtonNarrate(); //布置剖面符号方式按钮的说明
void SetButtonState(); //设置哪个按钮被选中
void LoadTextStyle(); //加载文字样式
static CString m_strSectionNum; //剖切编号
static CString m_strStyle; //剖切编号文字样式
static CString m_strHeight; //剖切编号文字字高
static BOOL m_bCheck; //剖面编号选择框
static CString m_strDrawingNum; //剖面编号
static int m_iLocal; //标注位置
static int m_iDirect; //标注方向
static CString m_strDrawingHeight; //剖面图号字高
static CString m_strTextStyle; //剖面图号文字样式
CComboBox m_cmbStyleName; //剖切编号文字样式
CComboBox m_cmbDrawStyle; //剖切符号文字样式
AecXDbSymbSection *m_pSection;
static BOOL m_bSection;
};