⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 curvecomposewnd.cpp

📁 对测井数据显示、编辑、处理
💻 CPP
字号:
// CurveComposeWnd.cpp : implementation file
//

#include "stdafx.h"
#include "WellDataProcess.h"
#include "CurveComposeWnd.h"

#include "GlobalData.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CCurveComposeWnd

CCurveComposeWnd::CCurveComposeWnd()
{
	m_pOrigGmgsData  = new COrigGmgsData;
	m_pWellTraceData = new CSeisTraceData;
	g_pCurveComWnd = this;
	m_bHaveData = FALSE;
	m_nShowKind = SHOW_NULL;
}

CCurveComposeWnd::~CCurveComposeWnd()
{
	delete [] m_pOrigGmgsData;
	delete [] m_pWellTraceData;
}


BEGIN_MESSAGE_MAP(CCurveComposeWnd, CWndEx)
	//{{AFX_MSG_MAP(CCurveComposeWnd)
	ON_WM_CREATE()
	ON_WM_PAINT()
	ON_WM_ERASEBKGND()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()


/////////////////////////////////////////////////////////////////////////////
// CCurveComposeWnd message handlers

int CCurveComposeWnd::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CWndEx::OnCreate(lpCreateStruct) == -1)
		return -1;
	

	return 0;
}

void CCurveComposeWnd::OnPaint() 
{
	CPaintDC dc(this); // device context for painting
	
	// TODO: Add your message handler code here
	ReDraw();
	
	// Do not call CWndEx::OnPaint() for painting messages
}

BOOL CCurveComposeWnd::OnEraseBkgnd(CDC* pDC) 
{
	// TODO: Add your message handler code here and/or call default
  	
	CRect rc;
	GetClientRect(&rc);
	pDC->Rectangle(&rc); 
	return TRUE;

//	return CWndEx::OnEraseBkgnd(pDC);
}


void CCurveComposeWnd::ReDraw()
{
	if(m_bHaveData)
	{
		CDC *pDC = GetDC();
		CRect rect;
		pDC->GetClipBox (rect);
		pDC->BitBlt (rect.left,rect.top,rect.Width(),rect.Height(),&m_memDC,rect.left,rect.top,SRCCOPY);
		ReleaseDC(pDC);
	
	}
}



#include "GMGDataManager.h"

void CCurveComposeWnd::ReadData()
{
	CGMGDataManager		   gmgdataManager;
	CString strFileName = GetAppPath();

	m_pOrigGmgsData->ClearData();
	m_pWellTraceData->ClearData();

	switch(m_nShowKind)
	{
	case SHOW_GMGS_CURVE:
		{
			strFileName = strFileName + "\\Data\\mt.dat";
			gmgdataManager.InitFileName(strFileName);
			gmgdataManager.GetOrigGmgsData(m_pOrigGmgsData);
			m_pOrigGmgsData->InitVariation(COR_RED, 2, PS_SOLID, 80, 100, 200, 500, 40);
			m_bHaveData = TRUE;
		}
		break;
	case SHOW_SYNTH_TRACE:
		{
			strFileName = strFileName + "\\Data\\OrigSeis.txt";
			gmgdataManager.InitFileName(strFileName);
			gmgdataManager.GetWellSideTraceData(m_pWellTraceData);
			m_pWellTraceData->InitVariation(RGB(100, 225, 225), 1, PS_SOLID, 10, 10, 350, 630, 30); 
			
			
			m_bHaveData = TRUE;

		}
		break;
	default:
		break;
	}

}


void CCurveComposeWnd::CreateMemDC(int nWidth,int nHeight)
{
	HDC hDC = ::GetDC(NULL);
	CDC* pDeskDC = CDC::FromHandle (hDC);

	m_memDC.CreateCompatibleDC(pDeskDC);
	m_bmp.CreateCompatibleBitmap(pDeskDC, nWidth, nHeight);

	//一定要有此句,DC与Bmp联结上,DC用来作操作接口,Bmp用来保存图像数据
	m_memDC.SelectObject(&m_bmp);

	m_memDC.PatBlt(0,0,nWidth,nHeight,WHITENESS);
	
}

void CCurveComposeWnd::DrawMapInMem(CDC* pDC)
{
	CRect rect;
	GetClientRect(rect);
	pDC->FillSolidRect(rect, RGB(0, 0, 0)); 
	switch(m_nShowKind)
	{
	case SHOW_GMGS_CURVE:
		{
	
			PutText(TRUE, 170, 50, 20, 0, "电磁曲线对比", pDC);
			PutText(TRUE, 90, 80, 14, 0, "实测电磁曲线", pDC);
			PutText(TRUE, 170, 80, 14, 0, "正演计算曲线", pDC);
			PutText(TRUE, 250, 80, 14, 0, "反演后的曲线", pDC);
			CRect rect1(48, 78, 52, 82);
			EraseRect(pDC, rect1, COR_RED);
			CRect rect2(128, 78, 132, 82);
			EraseRect(pDC, rect2, COR_GREEN);
			CRect rect3(208, 78, 212, 82);
			EraseRect(pDC, rect3, COR_BLUE);
			m_pOrigGmgsData->Draw(pDC);
		}
		break;
	case SHOW_SYNTH_TRACE:
		{
	
//			PutText(TRUE, 100, 20, 20, 0, "井旁地震道", pDC);
//			PutText(TRUE, 270, 20, 20, 0, "合成地震道", pDC);
//			m_pSynthTraceData->Draw(pDC);
			m_pWellTraceData->Draw(pDC);
		}
		break;
	default:
		break;
	}
	
	DrawRect(pDC, rect, COR_BLACK);
	
	
}

void CCurveComposeWnd::Plot()
{
	CRect rect;
	GetClientRect(rect);
	if(!m_memDC)
		CreateMemDC(rect.Width(), rect.Height());
	DrawMapInMem(&m_memDC); 
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -