📄 dwell.cpp
字号:
// DWell.cpp: implementation of the CDWell class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "drawcli.h"
#include "DWell.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CDWell::CDWell()
{
fX = 0.0; //X轴
fY = 0.0; //Y轴
//pJoinWellNO ; //关联井
//pLayers = NULL; //拥有的层
sWellNO = ""; //井号
sMQJB = ""; //目前井别
//sParentNO = "";
iDBJS = 0;
m_nPoint = 0;
}
CDWell::~CDWell()
{
}
BOOL CDWell::Offset(int x, int y)
{
if(cMoveFlag == 'Y')
{
if(m_WellMidRect)
{
m_WellMidRect = m_OldWellMidRect;
m_WellMidRect.OffsetRect(x,y);
}
if(m_WellRect)
{
m_WellRect = m_OldWellRect;
m_WellRect.OffsetRect(x,y);
}
if(m_TitleRect)
{
m_TitleRect = m_OldTitleRect;
m_TitleRect.OffsetRect(x,y);
}
int iL = pLayers.GetSize();
for(int i=0;i<iL;i++)
{
CDLayer* clayer = (CDLayer *)pLayers[i];
clayer->Offset(x,y);
}
}
return TRUE;
}
BOOL CDWell::CopyToOld()
{
if(sMQJB == "31")
{
m_OldWellMidRect.left = (long)(m_WellMidRect.left /g_fZoom);
m_OldWellMidRect.top = (long)(m_WellMidRect.top /g_fZoom);
m_OldWellMidRect.right = (long)(m_WellMidRect.right /g_fZoom);
m_OldWellMidRect.bottom = (long)(m_WellMidRect.bottom /g_fZoom);
}
m_OldWellRect.left = (long)(m_WellRect.left /g_fZoom);
m_OldWellRect.top = (long)(m_WellRect.top /g_fZoom);
m_OldWellRect.right = (long)(m_WellRect.right /g_fZoom);
m_OldWellRect.bottom = (long)(m_WellRect.bottom /g_fZoom);
m_OldTitleRect.left = (long)(m_TitleRect.left /g_fZoom);
m_OldTitleRect.top = (long)(m_TitleRect.top /g_fZoom);
m_OldTitleRect.right = (long)(m_TitleRect.right /g_fZoom);
m_OldTitleRect.bottom = (long)(m_TitleRect.bottom /g_fZoom);
int iL = pLayers.GetSize();
for(int i=0;i<iL;i++)
{
CDLayer* clayer = (CDLayer *)pLayers[i];
clayer->CopyToOld();
}
return TRUE;
}
BOOL CDWell::OffsetOld(int x, int y,int offsetX,int offsetY)
{
int ix = (int)(x / g_fZoom );//- offsetX;
int iy = (int)(y / g_fZoom);//- offsetY;
if(m_OldWellMidRect)
m_OldWellMidRect.OffsetRect(ix,iy);
if(m_OldWellRect)
m_OldWellRect.OffsetRect(ix,iy);
if(m_OldTitleRect)
m_OldTitleRect.OffsetRect(ix,iy);
int iL = pLayers.GetSize();
for(int i=0;i<iL;i++)
{
CDLayer* clayer = (CDLayer *)pLayers[i];
clayer->OffsetOld(ix,iy);
}
return TRUE;
}
BOOL CDWell::ZoomInOut(int x, int y,int offsetX,int offsetY)
{
CRect lrect1,lrect2,lrect3;
if(sMQJB == "31")
{
lrect1 = m_OldWellMidRect;
lrect1.OffsetRect(offsetX,offsetY);
m_WellMidRect.left = (long)(lrect1.left * g_fZoom);
m_WellMidRect.top = (long)(lrect1.top *g_fZoom);
m_WellMidRect.right = (long)(lrect1.right *g_fZoom);
m_WellMidRect.bottom = (long)(lrect1.bottom *g_fZoom);
m_WellMidRect.OffsetRect(x,y);
}
lrect2 = m_OldWellRect;
lrect2.OffsetRect(offsetX,offsetY);
m_WellRect.left = (long)(lrect2.left *g_fZoom);
m_WellRect.top = (long)(lrect2.top *g_fZoom);
m_WellRect.right = (long)(lrect2.right *g_fZoom);
m_WellRect.bottom = (long)(lrect2.bottom *g_fZoom);
m_WellRect.OffsetRect(x,y);
lrect3 = m_OldTitleRect;
lrect3.OffsetRect(offsetX,offsetY);
m_TitleRect.left = (long)(lrect3.left *g_fZoom);
m_TitleRect.top = (long)(lrect3.top *g_fZoom);
m_TitleRect.right = (long)(lrect3.right *g_fZoom);
m_TitleRect.bottom = (long)(lrect3.bottom *g_fZoom);
m_TitleRect.OffsetRect(x,y);
int iL = pLayers.GetSize();
for(int i=0;i<iL;i++)
{
CDLayer* clayer = (CDLayer *)pLayers[i];
clayer->ZoomInOut(x, y, offsetX, offsetY);
}
return TRUE;
}
void CDWell::Serialize(CArchive &ar)
{
int icnt,i;
if (ar.IsStoring())
{
ar << fX;
ar << fY;
ar << sWellNO;
ar << sMQJB;
ar << iDBJS;
ar << cSubList;
ar << cMoveFlag;
ar << cFault;
ar << m_TitleRect;
ar << m_WellRect;
ar << m_WellMidRect;
ar << m_Color;
ar << m_OldTitleRect;
ar << m_OldWellRect;
ar << m_OldWellMidRect;
icnt = pLayers.GetSize();
ar << (WORD)icnt;
for(i=0; i<icnt; i++)
{
CDLayer* layer = (CDLayer *)pLayers[i];
ASSERT (layer!= NULL);
layer->Serialize(ar);
}
m_ArrParentNO.Serialize(ar);
m_ArrFaultNO.Serialize(ar);
m_ArrLinkSerial.Serialize(ar);
}
else
{
WORD wTemp;
ar >> fX;
ar >> fY;
ar >> sWellNO;
ar >> sMQJB;
ar >> iDBJS;
ar >> cSubList;
ar >> cMoveFlag;
ar >> cFault;
ar >> m_TitleRect;
ar >> m_WellRect;
ar >> m_WellMidRect;
ar >> m_Color;
ar >> m_OldTitleRect;
ar >> m_OldWellRect;
ar >> m_OldWellMidRect;
ar >> wTemp;icnt = wTemp;
for(i=0; i<icnt; i++)
{
CDLayer* layer = new CDLayer ;
layer->Serialize(ar);
pLayers.Add(layer);
}
m_ArrParentNO.Serialize(ar);
m_ArrFaultNO.Serialize(ar);
m_ArrLinkSerial.Serialize(ar);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -