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.

251 lines
7.5 KiB
C++

1 month ago
/*************************************************
ʵ<EFBFBD>ֵ<EFBFBD><EFBFBD>ڶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҳ<EFBFBD><EFBFBD>ʾ<EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD><EFBFBD>ڶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Others:
Function List:
1. virtual BOOL InitPropertyGrid(CXTPPropertyGrid& grid); <EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD>
2. virtual BOOL OnGridItemChangeValue(CXTPPropertyGridItem* pItem);<EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD>Կ<EFBFBD><EFBFBD>ı<EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ĺ<EFBFBD><EFBFBD><EFBFBD>
3. virtual void OnInplaceButtonDown(CXTPPropertyGridItem* pItem);<EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD>Կ<EFBFBD><EFBFBD>ڰ<EFBFBD>ť<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µĶԻ<EFBFBD><EFBFBD><EFBFBD>
4. void RemoveSelectedTrackIn();ɾ<EFBFBD><EFBFBD>ѡ<EFBFBD>еĵ<EFBFBD><EFBFBD>ڶ<EFBFBD><EFBFBD><EFBFBD>
5. virtual void DeleteSelection(void);<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>դ״ͼʱ<EFBFBD><EFBFBD><EFBFBD>Ƴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҲҪɾ<EFBFBD><EFBFBD>
*************************************************/
#include "StdAfx.h"
//#include "CustomItemButton.h"
//
//#include "TextDlg.h"
#include "ItemText.h"
#include "WellPoleDoc.h"
#include "WellPoleView.h"
//#include "DlgTrackText.h"
//#include "DlgTrackOilAnaly.h"
//#include "DlgTrackOilStatis.h"
//#include "DlgTrackProductionNow.h"
//#include "DlgTrackProductionOld.h"
//#include "DlgTrackProductionTotal.h"
#include "WellPoleLib/WellMarkNamesList.h"
#include "WellPoleLib/WellBaseObj.h"
#include "WellPoleLib/WellClassObjGroup.h"
#include "WellPoleLib/InTrackDepthSegment.h"
#include "WellPoleLib/InTrackTextBase.h"
#include "WellPoleLib\InTrackLith.h"
#include "WellPoleLib\InTrackTextRange.h"
#include "WellPoleLib\InTrackPicture.h"
#include "WellPoleLib\InTrackSymbol.h"
#include "WellPoleLib\InTrackResult.h"
#include "WellPoleLib\InTrackCoring.h"
#include "WellPoleLib\InTrackCoreWell.h"
#include "WellPoleLib\InTrackShot.h"
#include "WellPoleLib\InTrackSample.h"
#include "WellPoleLib\InTrackOilTest.h"
#include "WellPoleLib\InTrackLayerGroup.h"
#include "WellPoleLib\InTrackLayerGroup.h"
#include "WellPoleLib\InTrackTestExtraction.h"
#include "WellPoleLib\InTrackFaultPoint.h"
#include "WellPoleLib/TrackObj.h"
#include "WellPoleLib/InclinedTrack.h"
#include "WellPoleLib\TrackOilTest.h"
#include "WellPoleLib\TrackResult.h"
#include "WellPoleLib\TrackCoreWell.h"
#include "WellPoleLib\WellPole.h"
//#include "PropertyGridItemAdd.h"//#include "DataPropertyPage.h"
#include "ItemTrackIn.h"
#include "CxImage\CxImage\ximagegeotiff.h"
//#include "DlgTrackText.h"
#define TrackInOilTestMid 98304
namespace NItem
{
CItemTrackIn::CItemTrackIn(CSigmaDoc* pDoc)
: CItemWellBase(pDoc)
{
SetType(ITEM_TRACKIN);
m_bChangeAllLayerSet = FALSE;
}
CItemTrackIn::~CItemTrackIn(void)
{
}
CImageInsert* CItemTrackIn::ReadImage(LPCTSTR lpcsImageName)
{
int type = CImageBase::GetImageType(lpcsImageName);
if (type == CXIMAGE_FORMAT_TIF) //<2F><>ȡGeoTiff<66>ļ<EFBFBD>
{
FILE* hFile = fopen(lpcsImageName, "rb");
if (hFile == NULL) return FALSE;
CImageBase *pi = new CImageBase;
CxImageGeoTIFF newima;
if (!newima.CxImageTIF::Decode(hFile))
{
fclose(hFile);
delete pi;
return FALSE;
}
CImageInsert* pImage = new CImageInsert();
pi->Transfer(newima);
pImage->m_pImage = pi;
pImage->SetName(lpcsImageName);
if (newima.m_bIsGeoTiff && fabs(newima.dx) > 1e-15 && fabs(newima.dy) > 1e-15)
{
pImage->x0 = newima.x0;
pImage->y0 = newima.y0;
pImage->m_size.cx = newima.dx*pImage->m_pImage->GetWidth();
pImage->m_size.cy = newima.dy*pImage->m_pImage->GetHeight();
}
else
{
pImage->m_size.cx = pImage->GetImage()->GetWidth();
pImage->m_size.cy = pImage->GetImage()->GetHeight();
pImage->x0 = 0;
pImage->y0 = 0;
}
fclose(hFile);
return pImage;
}
CImageInsert* pImage = new CImageInsert();
if (!pImage->LoadImage(lpcsImageName))
{
delete pImage;
::AfxMessageBox("Load image file error!");
return NULL;
}
pImage->m_size.cx = pImage->GetImage()->GetWidth();
pImage->m_size.cy = pImage->GetImage()->GetHeight();
pImage->x0 = 0;
pImage->y0 = 0;
return pImage;
}
void CItemTrackIn::RemoveSelectedTrackIn()
{
CTrackObj* pTrack = (CTrackObj*)m_pTrackIn->GetParent();
pTrack->RemoveChild(m_pTrackIn);
//pTrack->RemoveFromObjList(m_pTrackIn);
//delete m_pTrackIn;
m_pTrackIn = NULL;
}
int CItemTrackIn::DeleteSelection(void)
{
if(GetDrawObj() == NULL)
return 0;
CTrackObj* pTrack = (CTrackObj*)m_pTrackIn->GetParent();
//if (((CWellObj*)(pTrack->GetParentObj()))->GetWellType()==Well_Section)
//{
// CWellSection* pSection = (CWellSection*)(pTrack->GetParentObj()->GetParentObj());
// POSITION posBend = pSection->m_BendList.GetHeadPosition();
// while(posBend!=NULL)
// {
// CBendObj * pBend = (CBendObj *)pSection->m_BendList.GetNext(posBend);
// if (pBend->m_pLayerLeft==m_pTrackIn||(pBend->m_pLayerRight!=NULL&&pBend->m_pLayerRight==m_pTrackIn))
// {
// pSection->DeleteBend(pBend);
// }
// }
//}
RemoveSelectedTrackIn();
return 1;
}
void CItemTrackIn::ChangeAllLayerSet(CInTrackLayerGroup* pLayer, DWORD nLayerLinkFlag, DWORD nLayerPropertyFlag)
{
if(pLayer == NULL)
return;
//CBendObj * pBend = NULL;
if(nLayerLinkFlag & LayerLinkFlagLeft)
{
////<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//CInTrackLayerGroup* pLayerLeft = NULL;
//POSITION pos = pLayer->m_BendLeftList.GetHeadPosition();
//while(pos != NULL)
//{
// pBend = (CBendObj*)pLayer->m_BendLeftList.GetNext(pos);
// if(pBend->m_pLayerLeft && pBend->m_pLayerRight)
// {
// if(pBend->m_pLayerLeft->GetPosition().CenterPoint().x0 < pBend->m_pLayerRight->GetPosition().CenterPoint().x0)
// pLayerLeft = (CInTrackLayerGroup*)pBend->m_pLayerLeft;
// else
// pLayerLeft = (CInTrackLayerGroup*)pBend->m_pLayerRight;
// if(pLayerLeft != pLayer)
// {
// if(nLayerPropertyFlag & LayerPropertyFlagColor)
// pLayerLeft->m_brush.m_color = pLayer->m_brush.m_color;
// if(nLayerPropertyFlag & LayerPropertyFlagFont)
// pLayerLeft->m_font = pLayer->m_font;
// if(nLayerPropertyFlag & LayerPropertyFlagLitho)
// {
// pLayerLeft->m_strLitho = pLayer->m_strLitho;
// pLayerLeft->m_pMarkFill = pLayer->m_pMarkFill;
// }
// if(nLayerPropertyFlag & LayerPropertyFlagTop)
// pLayerLeft->SetTopUnComformity(pLayer->IsTopUnConformity());
// if(nLayerPropertyFlag & LayerPropertyFlagBottom)
// pLayerLeft->SetBottomUnDrill(pLayer->IsBottomUnDrill());
// ChangeAllLayerSet(pLayerLeft, LayerLinkFlagLeft, nLayerPropertyFlag);
// }
// }
//}
}
if(nLayerLinkFlag & LayerLinkFlagRight)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//CInTrackLayerGroup* pLayerRight = NULL;
//POSITION pos = pLayer->m_BendRightList.GetHeadPosition();
//while(pos != NULL)
//{
// pBend = (CBendObj*)pLayer->m_BendRightList.GetNext(pos);
// if(pBend->m_pLayerLeft && pBend->m_pLayerRight)
// {
// if(pBend->m_pLayerLeft->GetPosition().CenterPoint().x0 < pBend->m_pLayerRight->GetPosition().CenterPoint().x0)
// pLayerRight = (CInTrackLayerGroup*)pBend->m_pLayerRight;
// else
// pLayerRight = (CInTrackLayerGroup*)pBend->m_pLayerLeft;
// if(pLayerRight != pLayer)
// {
// //ͬ<><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
// if(nLayerPropertyFlag & LayerPropertyFlagColor)
// pLayerRight->m_brush.m_color = pLayer->m_brush.m_color;
// if(nLayerPropertyFlag & LayerPropertyFlagFont)
// pLayerRight->m_font = pLayer->m_font;
// if(nLayerPropertyFlag & LayerPropertyFlagLitho)
// {
// pLayerRight->m_strLitho = pLayer->m_strLitho;
// pLayerRight->m_pMarkFill = pLayer->m_pMarkFill;
// }
// if(nLayerPropertyFlag & LayerPropertyFlagTop)
// pLayerRight->SetTopUnComformity(pLayer->IsTopUnConformity());
// if(nLayerPropertyFlag & LayerPropertyFlagBottom)
// pLayerRight->SetBottomUnDrill(pLayer->IsBottomUnDrill());
// ChangeAllLayerSet(pLayerRight, LayerLinkFlagRight, nLayerPropertyFlag);
// }
// }
//}
}
}
}