📄 logcurve.h
字号:
#if !defined(AFX_LOGCURVE_H__AED9A0FB_8A82_4DAA_836B_96CE6F766E96__INCLUDED_)
#define AFX_LOGCURVE_H__AED9A0FB_8A82_4DAA_836B_96CE6F766E96__INCLUDED_
//#ifndef _INCLUDED_VISUAL_CPP_LOGCURVE
//#define _INCLUDED_VISUAL_CPP_LOGCURVE
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// LogCurve.h : header file
//
/////////////////////////////////////////////////////////////////////////////
// CLogCurve document
class CLogCurve : public CObject
{
protected:
DECLARE_DYNCREATE(CLogCurve)
// Attributes
public:
CLogCurve(); // protected constructor used by dynamic creation
// Operations
public:
const CLogCurve& CLogCurve::operator =(const CLogCurve &Cur)
{
nID=Cur.nID; //曲线编号——对应数据编号
tmpnID=Cur.tmpnID; //曲线编号——对应数据编号
strCurName.Format("%s",Cur.strCurName); //曲线名称
strOthCurName.Format("%s",Cur.strOthCurName); //曲线别名(显示时用)
StrCurDanwei.Format("%s",Cur.StrCurDanwei); //曲线单位
crColor=Cur.crColor; //曲线颜色
nStyle=Cur.nStyle ; //曲线线型
nWidth=Cur.nWidth ; //曲线线宽
nLeft=Cur.nLeft; //曲线左边界刻度值
nRight=Cur.nRight; //曲线右边界刻度值
nKeduType=Cur.nKeduType; //曲线刻度类型(0——线性刻度,1——对数刻度)
return *this;
}
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CLogCurve)
public:
virtual void Serialize(CArchive& ar); // overridden for document i/o
protected:
//}}AFX_VIRTUAL
// Implementation
public:
int GetnID();
void SetnId(int id);
BOOL flagEditd; //是否编辑过
int tmpnID; //数据编辑时的临时数据编号
CString strCurName; //曲线名称
CString strOthCurName; //曲线别名(显示时用)
CString StrCurDanwei; //曲线单位
COLORREF crColor; //曲线颜色
int nStyle; //曲线线型
int nWidth; //曲线线宽
float nLeft,nRight; //曲线左、右边界刻度值
int nKeduType; //曲线刻度类型(0——线性刻度,1——对数刻度)
virtual ~CLogCurve();
#ifdef _DEBUG
virtual void Dump(CDumpContext& dc) const;
#endif
protected:
int nID; //曲线编号——对应数据编号,
};
/////////////////////////////////////////////////////////////////////////////
/////剖面填充类型
/*
struct CPMTC
{
// int m_nID; //序号
// BOOL m_bflag; //是否填充
CString strName; //岩性名称
int m_nSign; //岩性符号次序
};
*/
class CPMTC : public CObject
{
protected:
DECLARE_DYNCREATE(CPMTC)
public:
CPMTC()
{
strName.Format("%s","UNKNOW");
m_nSign=-1;
m_nSouCur=-1;
};
~CPMTC()
{
}
// Operations
public:
const CPMTC& CPMTC::operator =(const CPMTC &tPmtc)
{
strName.Format("%s",tPmtc.strName);
m_nSign=tPmtc.m_nSign;
m_nSouCur=tPmtc.m_nSouCur;
return *this;
};
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CYXTC)
public:
virtual void Serialize(CArchive& ar); // overridden for document i/o
protected:
//}}AFX_VIRTUAL
public:
int m_nSouCur; //起始曲线在道中的位置
CString strName; //岩性名称
int m_nSign; //岩性符号次序
};
/////////////////////////////////////////////////////////////////////////////
/////岩性填充类
class CYXTC : public CObject
{
protected:
DECLARE_DYNCREATE(CYXTC)
public:
CYXTC()
{
// ZeroMemory( this, sizeof(CYXTC) ); //初始化结构
m_bflag=false;
YxName.Format("%s","UNKNOW");
m_nType=0;
m_nDesCur=-1;
// m_DesCurName="左边界";
};
~CYXTC()
{
}
// Operations
public:
const CYXTC& CYXTC::operator =(const CYXTC &tYxtc)
{
m_bflag=tYxtc.m_bflag;
YxName.Format("%s",tYxtc.YxName);
m_nType=tYxtc.m_nType;
m_nSouCur=tYxtc.m_nSouCur;
m_nDesCur=tYxtc.m_nDesCur;
m_nSign=tYxtc.m_nSign;
return *this;
};
const BOOL CYXTC::operator ==(const CYXTC &tYxtc)
{
if((m_nDesCur==tYxtc.m_nDesCur && m_nSouCur==tYxtc.m_nSouCur)||
(m_nDesCur==tYxtc.m_nSouCur && m_nSouCur==tYxtc.m_nDesCur))
return true;
else
return false;
};
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CYXTC)
public:
virtual void Serialize(CArchive& ar); // overridden for document i/o
protected:
//}}AFX_VIRTUAL
public:
BOOL m_bflag; //是否填充
CString YxName; //岩性名称
int m_nID; //序号
int m_nSign; //岩性符号次序
int m_nType; //填充类型 0——岩性剖面、1——岩性成份剖面
int m_nSouCur; //起始曲线在道中的位置
int m_nDesCur,m_nDesCur1; //目标曲线在道中的位置(-1,-2——左,右边界,其它——测井曲线)
int daoID; //在的道序号
};
/////////////////////////////////////////////////////////////////////////////
// CDao document
/////绘图道类
class CDao : public CObject
{
protected:
DECLARE_DYNCREATE(CDao)
// Attributes
public:
CDao(); // protected constructor used by dynamic creation
friend class CTestView;
// Operations
public:
friend class CTestDoc;
const CDao& CDao::operator =(const CDao &tDao)
{
int i;
for(i=0;i<MaxNumDaoInDao;i++)
Curve[i]=tDao.Curve[i]; //道中的曲线
for(i=0;i<MaxNumPouMianInDao;i++)
{
m_Pmtc[i]=tDao.m_Pmtc[i];
}
nID=tDao.nID ; //道号——道位置
nType=tDao.nType; //类型(-2——成分填充道,-1——岩性填充道,0——绘图道,1——深度刻度道)
nKeduType=tDao.nKeduType; //刻度类型(0——线性刻度,1——对数刻度)
rcHead=tDao.rcHead; //道头部矩形框
rcBody=tDao.rcBody; //道体部矩形框
nLeft=tDao.nLeft;
nRight=tDao.nRight ; //对数刻度时的左右刻度值
crBkColor=tDao.crBkColor;
crColor=tDao.crColor;
nNumCur=tDao.nNumCur;
return *this;
};
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CYXTC)
public:
enum{MaxNumDaoInDao=30,MaxNumPouMianInDao=30,MaxNumYanxingInDao=10};
virtual void Serialize(CArchive& ar); // overridden for document i/o
protected:
//}}AFX_VIRTUAL
// Implementation
public:
int GetType();
void SetType(int nTp);
BOOL AddACur(CString &CurName,int nDaoID,float LeftVal,float RightVal);
BOOL AddACur(CString &CurName,int nDaoID);
void AddACur( CLogCurve &Cur);
CLogCurve Curve[MaxNumDaoInDao]; //道中的曲线
int nID; //道号——道位置
int nKeduType; //刻度类型(0——线性刻度,1——对数刻度)
CRect rcHead,rcBody; //道头部、体部矩形框
float nLeft,nRight; //对数刻度或者线性刻度时的左右刻度值
int nLwz,nRwz,nWidth; //道的左右位置、宽度
COLORREF crBkColor,crColor;
int nNumCur;
//岩性填充标记
int numYXTC; //已经进行的岩性填充数目
CYXTC m_yxtc[MaxNumYanxingInDao];
//剖面填充标记
int numPMTC;
CPMTC m_Pmtc[MaxNumPouMianInDao];
//曲线绘制时的横向坐标数据指针
// CPoint* Pt[MaxNumPouMianInDao];
int* ptY[MaxNumPouMianInDao];
virtual ~CDao();
#ifdef _DEBUG
virtual void Dump(CDumpContext& dc) const;
#endif
// Generated message map functions
protected:
int nType; //类型(-1——深度刻度道,0——绘图道,1——岩性剖面填充道,2——岩性成分填充道)
float XianZhiX(float ll , float lr ,float x );
//{{AFX_MSG(CDao)
// NOTE - the ClassWizard will add and remove member functions here.
//}}AFX_MSG
};
/////////////////////////////////////////////////////////////////////////////
// CPAGE document页面设置类
class CPAGE : public CObject
{
protected:
DECLARE_DYNCREATE(CPAGE)
// Attributes
public:
int left,right,top,bottom;
int nHightHead,nHightBody; //曲线显示时头部区域、曲线区域的高度值
// Operations
public:
CPAGE(); // protected constructor used by dynamic creation
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CPAGE)
public:
virtual void Serialize(CArchive& ar); // overridden for document i/o
protected:
//}}AFX_VIRTUAL
// Implementation
public:
virtual ~CPAGE();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
// Generated message map functions
protected:
//{{AFX_MSG(CPAGE)
// NOTE - the ClassWizard will add and remove member functions here.
//}}AFX_MSG
// DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
// CWellHead document
class CWellHead : public CObject
{
protected:
//CWellHead(); // protected constructor used by dynamic creation
DECLARE_DYNCREATE(CWellHead)
// Attributes
public:
CWellHead();
// Operations
public:
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CWellHead)
public:
enum{MaxNumDaoInWell=10,MaxNumCurInDao=30,MaxNumCurInWell=80,MaxNumPoint=4000};
virtual void Serialize(CArchive& ar); // overridden for document i/o
protected:
//}}AFX_VIRTUAL
// Implementation
public:
void SetHeadHight(int newHignt);
void SetMaxNCD();
int GetMaxNCD();
void InitWellPage();
virtual ~CWellHead();
//模板数据
CDao myDao[MaxNumDaoInWell];
CPAGE page;
int nScal;
int nNumDao;
int nStPoint,nEndPoint; //需要绘图的起止采样点位置
int tnStPoint,tnEndPoint; //需要绘图的起止采样点位置
CLogCurve Curve[MaxNumCurInWell];
BOOL bWell; //是否有井数据
float (*pLogData)[81]; //实际测井数据
// float pLogData[MaxNumPoint][MaxNumCurInWell]; //实际测井数据
CString WellName,FileName;
float STDEP,ENDDEP,RLEV; //实际测量井段起止深度、采样间隔
float dispSTDEP,dispENDDEP; //需要显示井段起止深度
float tdispSTDEP,tdispENDDEP; //页面显示井段起止深度
// float YxSTDEP,YxENDDEP; //岩性填充井段起止深度
int nNumCur,tnNumCur;
long nTotalNumPoint,tnTotalNumPoint; //总采样点数、需要绘制井段的采样点数
// int strCurName[200][10];
// double strOthCurName[200][10];
// char StrCurDawei[200][10];
int nVBili;
CRgn rgnT;
#ifdef _DEBUG
virtual void Dump(CDumpContext& dc) const;
#endif
// Generated message map functions
protected:
int nMaxNCD; //所有道中最多曲线条数
};
#endif // !defined(AFX_LOGCURVE_H__AED9A0FB_8A82_4DAA_836B_96CE6F766E96__INCLUDED_)
//_INCLUDED_VISUAL_CPP_LOGCURVE
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -