You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
280 lines
9.3 KiB
C++
280 lines
9.3 KiB
C++
//////////////////////////////////////////////////////////////////////////////
|
|
//文件: Item.h
|
|
//主要功能:
|
|
//
|
|
//程序编写: 2006-12-07
|
|
//
|
|
//
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#pragma once
|
|
#include "DrawOperator\xydc.h"
|
|
#include "DrawOperator\one.h"
|
|
|
|
#include "ItemBase.h"
|
|
#include "ItemView.h"
|
|
#include "ItemPrint.h"
|
|
|
|
//其它类型
|
|
#define ITEM_STATE 1003 //状态
|
|
#define ITEM_ERASER 1004 //橡皮
|
|
#define ITEM_HYPERLINK 1005 //超级联接
|
|
#define ITEM_SELECT 1006 //元素选择
|
|
#define ITEM_RECTANGLE 1007 //画矩形
|
|
#define ITEM_CIRCLE 1008 //画圆
|
|
#define ITEM_GRID 1009 //坐标网
|
|
#define ITEM_MATRIX_MARK 1010 //矩阵符号
|
|
#define ITEM_CURVE 1011 //曲线
|
|
#define ITEM_LINK_CURVE 1012 //连接曲线
|
|
#define ITEM_SOLID 1013 //填充区域
|
|
#define ITEM_PUT_INTO_CURVE 1014 //内插曲线
|
|
#define ITEM_BREAK_CURVE 1015 //打断曲线
|
|
#define ITEM_IMAGE_TRACE 1016 //图像矢量化
|
|
#define ITEM_EXTEND_CURVE 1017 //曲线延伸
|
|
#define ITEM_TRIM_CURVE 1018 //剪切曲线
|
|
#define ITEM_PROPORTION 1019 //比例尺
|
|
#define ITEM_LINK_POINT 1020 //连接点成曲线
|
|
#define ITEM_2POINT_TO_RECT 1021 //连接两点成矩形
|
|
#define ITEM_3POINT_TO_RGN 1022 //连接三点成四边形
|
|
#define ITEM_ARC 1023 //插入弧、弦、饼
|
|
#define ITEM_EQUILATERAL 1024 //等边多边形
|
|
#define ITEM_IMAGE 1025 //图像
|
|
#define ITEM_MXN 1026 //SEGY类数据
|
|
#define ITEM_INSERT_DRAW 1027 //新符号
|
|
#define ITEM_POINT 1028 //点增加
|
|
#define ITEM_FRAME 1029 //边框
|
|
#define ITEM_TEXT 1030 //文字
|
|
#define ITEM_MESH 1031 //MESH文件
|
|
#define ITEM_ELLIPSE 1032 //椭圆
|
|
#define ITEM_NET 1034 //经纬度网
|
|
#define ITEM_REDUNDANT 1035 //曲线冗余
|
|
#define ITEM_SCALE_EMBELLISH 1036 //放缩比例
|
|
#define ITEM_SCALE_OBJECT 1037 //放缩元素
|
|
#define ITEM_SAVE_TO_MARK 1038 //保存为符号
|
|
#define ITEM_DELETE 1039 //删除
|
|
#define ITEM_FIND 1040 //查找\替换
|
|
#define ITEM_MATH_FIND 1041 //数学发现
|
|
#define ITEM_CLIPBOARD 1042 //剪切板COPY与PAST
|
|
#define ITEM_CURVE_PROCESS 1043 //曲线处理类
|
|
#define ITEM_POINT_PROCESS 1044 //点处理
|
|
#define ITEM_TEXT_EDIT 1045 //对文本数据的批量设置
|
|
#define ITEM_EXPRESSION 1046 //对x,y,z,l进行表达式计算
|
|
#define ITEM_ARC_EDIT 1047 //对弧、弦、饼进行编辑
|
|
#define ITEM_SELECT_ELEMENT 1048 //选择一个元素类
|
|
#define ITEM_SELECT_GOTO 1049 //选择转移
|
|
#define ITEM_CALIBRATE 1050 //校正
|
|
#define ITEM_SECTION 1051 //Section数据
|
|
#define ITEM_CHANGE_COLOR 1052 //改变颜色
|
|
#define ITEM_OPEN_FILE 1053 //打开文件
|
|
#define ITEM_BK_GRID 1054 //背景网格
|
|
#define ITEM_CURVE_EDIT 1055 //曲线编辑
|
|
#define ITEM_POINT_EDIT 1056 //点编辑
|
|
#define ITEM_WMF 1058 //WMF和EMF文件
|
|
#define ITEM_ALIGN 1059 //元素对齐处理
|
|
#define ITEM_CALIBRATE_LINE 1060 //直线校正
|
|
#define ITEM_ROTATE 1061 //旋转
|
|
#define ITEM_TOOLTIP 1062 //信息提示
|
|
#define ITEM_XPOINT_EDIT 1063 //x点编辑
|
|
#define ITEM_OLE 1064 //OLE元素
|
|
#define ITEM_INSERT_TABLE 1065 //插入表格
|
|
#define ITEM_STAT_ELEMENTS 1066 //统计元素
|
|
#define ITEM_MESH_PROCESS 1067 //曲面计算
|
|
#define ITEM_CUT_OUT 1068 //剪裁外部
|
|
#define ITEM_MATRIX_COPY 1069 //矩阵复制
|
|
#define ITEM_CURVE_INNAME 1070 //编辑曲线内部名字
|
|
#define ITEM_CURVE_NAME_AUTO 1071 //根据步长自动设置等值线名称
|
|
#define ITEM_CURVE_NAME_EXPRESSION 1072 //对曲线名称进行表达式运算
|
|
#define ITEM_MAKE_MARK 1073 //符号制作
|
|
#define ITEM_INSERT_OLD 1074 //老符号
|
|
#define ITEM_OTHER 1075 //其它的一些处理
|
|
#define ITEM_GET_RANGE 1076 //拾取区域
|
|
#define ITEM_MARK 1077 //导入编辑
|
|
#define ITEM_BREAK_CURVE_DIRECT 1078 //打断曲线
|
|
#define ITEM_SCALE 1079 //通过定置两条任意曲线拉伸元素
|
|
#define ITEM_CUT_IN 1080 //剪裁内部
|
|
#define ITEM_CURVE_CENTER_NAME 1081 //编辑曲线内部名字
|
|
#define ITEM_COPY_AS_IMAGE 1082 // 拷贝图片
|
|
#define ITEM_SCALE_RULER 1083 //标尺编辑
|
|
#define ITEM_TRACE_TO_LOG 1084 //矢量化数据转换为测井数据
|
|
#define ITEM_CHANGE_LAYER 1085 //改变类别
|
|
#define ITEM_CROSSPOINT_EDIT 1086 //十字点编辑
|
|
#define ITEM_CROSSPOINT 1087 //十字点插入
|
|
#define ITEM_TWOPOINT_EDIT 1088 //分数点编辑
|
|
#define ITEM_TWOPOINT 1089 //分数点插入
|
|
#define ITEM_IMAGE_PROCESS 1090 //图像处理
|
|
#define ITEM_SOLID_LINK 1091 //连接曲线填充区域
|
|
#define ITEM_CURVE_Z_SETTING 1092 //根据步长自动设置曲线Z值
|
|
#define ITEM_BREAK_CONTOUR 1093 //打断等值线(结合逆断层)为了给断层内的等值线上虚线
|
|
#define ITEM_PATH_FILL 1094 //路径充填
|
|
|
|
#define ITEM_WELL 1095 //添加井
|
|
#define ITEM_ADD_WELL 1096 //编辑井
|
|
|
|
#define ITEM_CHART 1097 //添加图版
|
|
#define ITEM_CHARTEX 1098 //统计图
|
|
#define ITEM_CHARTEX_EDIT 1099
|
|
|
|
#define ITEM_CREATE_CONTOUR 1100 // 生成等值线
|
|
#define ITEM_SET_CONTOUR_NAME 1101 // 设置等值线名称
|
|
//#define ITEM_OILWATER 1098
|
|
//#define ITEM_HISTORGRAM 1099
|
|
//#define ITEM_RTPORLOG 1100
|
|
//#define ITEM_RWASP 1101
|
|
//#define ITEM_LIGASCROSS 1102
|
|
//#define ITEM_CROSS 1103
|
|
|
|
#define ITEM_REGIONSELECT 1104
|
|
#define ITEM_ADD_FACIES 1105
|
|
#define ITEM_ADD_STRATUM 1106 //添加地层对比图
|
|
#define ITEM_TURTLE 1107 //绘制龟背图
|
|
|
|
#define ITEM_SOLID_AUTO 1108 //自动充填
|
|
#define ITEM_ADD_STATISPLATE 1109
|
|
#define ITEM_PLATE 1110
|
|
#define ITEM_PLATEEDIT 1111
|
|
#define ITEM_ADD_WELLDATAGRAPH 1112
|
|
#define ITEM_WELLDATAGRAPH 1113 //产能柱图
|
|
|
|
#define ITEM_INSERT_LABEL_RECT 1116 // 插入标注
|
|
#define ITEM_LABEL_RECT_EDIT 1117 // 编辑标注
|
|
#define ITEM_INSERT_FAULTLINE 1118 // 插入断层
|
|
#define ITEM_ATTACH_CURVE 1119 // 绑定曲线,自动修改
|
|
#define ITEM_PICK_TWO_CURVE 1120 // 拾取两条曲线计算面积及体积
|
|
#define ITEM_BLOCK 1121 //块元素
|
|
|
|
#define ITEM_WELL_GROUP 1122 // 井组
|
|
#define ITEM_WELL_GROUP_EDIT 1123 // 井组
|
|
#define ITEM_WELL_BRANCH_CURVE_EDIT 1124 // 井支线编辑
|
|
|
|
#define ITEM_COPY_AS_IMAGE_EX 1201 // 高级拷贝图片
|
|
#define ITEM_COPY_AS_IMAGE_POLYGON 1202 // 多边形拷贝图片
|
|
#define ITEM_MEASURE 1203 // 测量
|
|
|
|
#define ITEM_WELLPOLE 1300
|
|
#define ITEM_TRACKIN 1301
|
|
#define ITEM_TRACK 1302
|
|
|
|
//class CDFDrawProDoc;
|
|
//class CDFDrawProView;
|
|
|
|
#include "atltypes.h"
|
|
#include "ItemBase.h"
|
|
//#include ".\propertygriditemadd.h"
|
|
//#include ".\CustomItemCombo.h"
|
|
//#include ".\customitemscalewizard.h"
|
|
//#include ".\customitemmark.h"
|
|
//#include ".\customitemmeshcolor.h"
|
|
//#include ".\customitemembellish.h"
|
|
|
|
//using namespace NOptionItem;
|
|
class CSigmaView;
|
|
namespace NItem
|
|
{
|
|
|
|
class CItem : public CItemBase
|
|
{
|
|
public:
|
|
CItem(CSigmaDoc * ppDoc);
|
|
virtual ~CItem(void);
|
|
|
|
public:
|
|
//属性项
|
|
virtual void InitializationMul(void); //初始化参数
|
|
static CString m_strLayerMul; //为了多个相同元素的层名
|
|
static CHyperlinkMulti* m_pHyperlinkMul;
|
|
|
|
int GetStatusCode() const;
|
|
const char *GetStatusText() const;
|
|
|
|
CString GetGridItemComboLayer(void);
|
|
|
|
CSigmaDoc * GetDoc(void);
|
|
CSigmaView* GetView(void) { return (CSigmaView*)GetDrawView(); }
|
|
|
|
virtual void SetPos(POSITION pos);
|
|
bool IsEditState(void); //返回true为编辑状态,否则为增加状态
|
|
|
|
CItem* GetOwner() { return m_pItemOwner; }
|
|
void SetOwner(CItem* pItemOwner) { m_pItemOwner = pItemOwner; }
|
|
|
|
virtual POSITION GetPos(void);
|
|
int GetHandleIndex(void);
|
|
void SetHandleIndex(int nIndex);
|
|
BOOL IsModified(void);
|
|
virtual void SetModifiedFlag(BOOL bModified);
|
|
int GetSelectSubMenu(void);
|
|
//int ShowPropertyPane(int nShow); //返回显示之前的状态(0=Close, 1=Show, 2=Hide)
|
|
void DrawCurveHandle(CXyDC* pDC, CCurveEx* pCurve, COLORREF color, int nMode, BOOL bDrawLine, int penWidth=1);
|
|
dfPoint GetShiftDownPoint(double begin_x, double begin_y, double end_x, double end_y);
|
|
POSITION FindCurve(CCurveEx* pCurve); //发现pDoc->GetDraw()中的曲线
|
|
|
|
POSITION AddElement(void* pValue, int type, bool bUpdateView=true, bool bWithUndo=true);
|
|
POSITION InsertElementBefore(POSITION pos, COne* pNewOne, BOOL bUpdateView=TRUE);
|
|
POSITION InsertElementAfter(POSITION pos, void * pElement, int nType, BOOL bUpdateView = TRUE);
|
|
POSITION AddTailOne(COne* pOne);
|
|
|
|
bool IsUpdatePropertyGrid(void);
|
|
void SetUpdatePropertyGridState(bool bUpdate);
|
|
void SetBackGroundDC(CDC* pDC) { m_pBackGroundDC = pDC; }
|
|
|
|
void Invalidate(void);
|
|
|
|
CUnitTransform& GetUnitMode();
|
|
int GetUnit(); //获得当前显示单位
|
|
CUnitTransform m_unitMode; //根据设置的比例在打印单位与实际单位间变换
|
|
CRect m_client;
|
|
|
|
BOOL IsNestItem() { return m_bNestItem; } //ggff
|
|
virtual void SetItem(CItem* pItem) {} //ggff2025
|
|
virtual BOOL OnSetCursor(CPoint pt, int& handle) { handle = -1; return FALSE; };
|
|
|
|
virtual CItem* GetItem(void) { return this; }
|
|
virtual void DeleteItem(void) {}
|
|
protected:
|
|
void DeleteElement(POSITION pos);
|
|
//CXTPPropertyGridItem* FindItem(CXTPPropertyGridItem* pItem, UINT nID);
|
|
void SetStatusCode(int code);
|
|
void SetStatusText(const char * pText);
|
|
void ClearStatus();
|
|
|
|
//当前选择点的索引号,为了编辑曲线....
|
|
int m_nCurHandleIndex;
|
|
BOOL m_bModifiedFlag; //是否修改了当前的曲线.....
|
|
|
|
protected:
|
|
POSITION position; //是编辑状态,还是增加状态NULL
|
|
CItem* m_pItemOwner; //为了调用OnInplaceButtonDown时的归属
|
|
CDC* m_pBackGroundDC;
|
|
|
|
private:
|
|
bool bUpdatePropertyGrid; //是否充填属性
|
|
int m_nStatusCode;
|
|
char *m_pStatusText;
|
|
protected:
|
|
BOOL m_bNestItem; ////是否嵌套的item //ggff
|
|
};
|
|
|
|
class CItemViewEx :
|
|
public CItemView
|
|
{
|
|
public:
|
|
CItemViewEx(void);
|
|
CItemViewEx(CSigmaDoc * ppDoc);
|
|
virtual ~CItemViewEx(void);
|
|
virtual BOOL GetViewRange(CRect8& rect); //获得要全图显示的范围
|
|
};
|
|
|
|
class CItemPrintEx :
|
|
public CItemPrint
|
|
{
|
|
public:
|
|
CItemPrintEx(CSigmaDoc * ppDoc);
|
|
~CItemPrintEx(void);
|
|
|
|
virtual void AfterEndPrinting(CDC* pDC, CPrintInfo* pInfo);
|
|
};
|
|
|
|
};
|
|
|
|
using namespace NItem;
|