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

📄 globaldata.cpp

📁 对测井数据显示、编辑、处理
💻 CPP
字号:
#include "stdafx.h"
#include "GlobalData.h"

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


class CWellDataProcessView;
class CGmgsAnalyseWnd;
class CCurveCompareView;
class CCurveComposeWnd;


extern CCurveComposeWnd*	   g_pCurveComWnd = NULL;
extern CGmgsAnalyseWnd*		    g_pAnalyseWnd = NULL;
extern CWellDataProcessView*    g_pGmgsView = NULL;
extern CCurveCompareView*	   g_pCompareView = NULL;

CString GetAppPath()
{
	char lpFileName[256];
	GetModuleFileName(NULL,lpFileName,256);
	int nLen=strlen(lpFileName);
	for(int i=nLen;i>=0;i--)
	{
		if (lpFileName[i]=='\\') 
		{
			lpFileName[i]='\0';
			break;
		}
	}

	CString strPath;
	strPath=lpFileName;
	return strPath;
}
void DrawRect(CDC *pDC, CRect rect, COLORREF color)
{
	CPen pen(PS_SOLID, 2, color);
	CPen *pOrgPen = pDC->SelectObject(&pen); 
	pDC->MoveTo (rect.TopLeft());
	pDC->LineTo (rect.right - 1,rect.top);
	pDC->LineTo (rect.right - 1,rect.bottom -1 );
	pDC->LineTo (rect.left ,rect.bottom - 1);
 	pDC->LineTo (rect.TopLeft ());
	pDC->SelectObject(pOrgPen); 
	
}

void DrawRectBottomLine(CDC *pDC, CRect rect)
{ 
	pDC->MoveTo (rect.left, rect.bottom);
	pDC->LineTo (rect.right, rect.bottom);

}


void DrawDragRect(CDC* pDC,CRect rect)
{
	int nMode = pDC->SetROP2 (R2_NOTXORPEN);
	
	CPen pen(PS_SOLID, 1, COR_RED);

	CPen* pOldPen = pDC->SelectObject (&pen);

	DrawInterpretFlag(pDC, rect.left, rect.right, rect.bottom);

	pDC->SelectObject (pOldPen);
	pDC->SetROP2 (nMode);
	
}

void DrawInterpretFlag(CDC* pDC, int x1, int x2, int y)
{
	CPen pen(PS_SOLID, 1, RGB(255, 0, 0));
	CPen *pOldPen = pDC->SelectObject(&pen);
	pDC->MoveTo(x1, y);
	pDC->LineTo(x1 + 8, y - 1);
	pDC->LineTo(x1 + 8, y + 1);
	pDC->LineTo(x1, y);
	pDC->LineTo(x2, y);
	pDC->LineTo(x2 - 8, y - 1);
	pDC->LineTo(x2 - 8, y + 1);
	pDC->LineTo(x2, y);
	pDC->SelectObject(pOldPen);
}

void DrawDragLine(BOOL b, CDC *pDC, CPoint pt1, CPoint pt2, COLORREF color, int nWidth)
{
	int nMode;
	if(b)
		nMode = pDC->SetROP2 ( R2_NOTXORPEN);
	CPen pen(PS_SOLID, nWidth, color);
	CPen* pOldPen = pDC->SelectObject(&pen);
	pDC->MoveTo(pt1);
	pDC->LineTo(pt2);
	pDC->SelectObject (pOldPen);
	if(b)
		pDC->SetROP2 (nMode);

}
//////////////////////////////////////////////////////////////////////
// 
//        进行标注注释输出
//
//////////////////////////////////////////////////////////////////////

 void PutText(bool b, int x, int y, int nSizeWord, int nAngle, CString str,  CDC *pDC)
{
   int nMode; 
   CFont font;
   CFont *oldfont;
   font.CreateFont(
	   nSizeWord,						// nHeight
	   0,							// nWidth
	   nAngle,							// nEscapement
	   0,							// nOrientation
	   500,						// nWeight
	   FALSE,						// bItalic
	   FALSE,						// bUnderline
	   0,							// cStrikeOut
	   ANSI_CHARSET,				// nCharSet
	   OUT_DEFAULT_PRECIS,			// nOutPrecision
	   CLIP_DEFAULT_PRECIS,		// nClipPrecision
	   DEFAULT_QUALITY,			// nQuality
	   DEFAULT_PITCH | FF_SWISS,	// nPitchAndFamily
	   "Bold"						// lpszFacename
	   );
   oldfont = pDC->SelectObject(&font);
   CSize size = pDC->GetTextExtent(str);
   if(b)
   {
		nMode = pDC->SetBkMode(TRANSPARENT);
   }
  
   pDC->SetTextColor(COR_WHITE); 
   pDC->TextOut(x - size.cx / 2, y - size.cy / 2, str);

   pDC->SelectObject(oldfont);
   
   font.DeleteObject();
   
   if(b)
	   pDC->SetBkMode(nMode); 
	
}

void EraseRect(CDC* pDC,CRect rect,COLORREF color)
{
	
	CBrush brush(color);
	CBrush* pOldBrush = pDC->SelectObject (&brush);
	pDC->PatBlt(rect.left ,rect.top ,rect.Width(),rect.Height(),PATCOPY);
	pDC->SelectObject (pOldBrush);
	
}

float  *conv(float *x,int n1,float *y,int n2)
{  float *x_expand,*y_invert,*z;
   int   i,n3,j;

   if(n1<n2)
	  conv(y,n2,x,n1);

   n3=n2*2-2+n1;
   x_expand=(float *)malloc(n3*sizeof(float));
         z=(float *)malloc((n2-1+n1)*sizeof(float));
   y_invert=(float *)malloc(n2*sizeof(float));

   for(i=0;i<n2;i++)
	  y_invert[i]=y[n2-1-i];
  
   for(i=0;i<n3;i++)
	  x_expand[i]=0;

   for(i=n2-1;i<n2-1+n1;i++)
	  x_expand[i]=x[i-(n2-1)];

   for(i=0;i<n2-1+n1;i++)
   {
	  z[i]=0;
	  for(j=0;j<n2;j++)
	  z[i]+=y_invert[j]*x_expand[i+j];
	}

 free(x_expand);
 free(y_invert);
 return z;
}

⌨️ 快捷键说明

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