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

📄 satcoordview.cpp

📁 gps 卫星位置的计算
💻 CPP
字号:
// SatCoordView.cpp : implementation of the CSatCoordView class
//

#include "stdafx.h"
#include "SatCoord.h"

#include "SatCoordDoc.h"
#include "SatCoordView.h"
#include "bj54gauss.h"
#include "xi80guass.h"
#include "gaussbj54.h"
#include "wgsgauss.h"
#include "seventrans.h"
#include "wgs84pz90.h"
#include "ninetrans.h"

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

/////////////////////////////////////////////////////////////////////////////
// CSatCoordView

IMPLEMENT_DYNCREATE(CSatCoordView, CScrollView)

BEGIN_MESSAGE_MAP(CSatCoordView, CScrollView)
	//{{AFX_MSG_MAP(CSatCoordView)
	ON_COMMAND(ID_TRANS_BJ54_GUASS, OnTransBj54Guass)
	ON_COMMAND(ID_TRANS_XI80_GUASS, OnTransXi80Guass)
	ON_COMMAND(ID_trans_q, Ontransq)
	ON_COMMAND(ID_TRANS_GUASS_BJ54, OnTransGuassBj54)
	ON_COMMAND(ID_GPSCOORD, OnGpscoord)
	ON_COMMAND(ID_VIEW_WGSTOBJ, OnViewWgstobj)
	ON_COMMAND(ID_VIEW_SP3DATA, OnViewSp3data)
	ON_COMMAND(ID_WGS_GAUSS, OnWgsGauss)
	ON_COMMAND(ID_BACK, OnBack)
	ON_COMMAND(ID_Seven_Trans, OnSevenTrans)
	ON_COMMAND(ID_WGS_PZ90, OnWgsPz90)
	ON_COMMAND(ID_nine_trans, Onninetrans)
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CScrollView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CScrollView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CScrollView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSatCoordView construction/destruction
extern CString m ;
CSatCoordView::CSatCoordView()
{
	// TODO: add construction code here
    m_Flags = FALSE;
	BITMAP BM;
	bitmap.LoadBitmap(IDB_BITMAP2);
	bitmap.GetObject(sizeof(BM),&BM);
	bitmapWidth=BM.bmWidth;
	bitmapHeight=BM.bmHeight;
 
}

CSatCoordView::~CSatCoordView()
{
}

BOOL CSatCoordView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CScrollView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CSatCoordView drawing

void CSatCoordView::OnDraw(CDC* pDC)
{
	CSatCoordDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	char* sx;
	char* sy;
	char* sz;
	char* num;
	char* bias;

	CDC dcMemory;
	CRect rect;
	
	if(!m_Flags)
	{
		GetClientRect(&rect);
		dcMemory.CreateCompatibleDC(NULL);
		dcMemory.SelectObject(&bitmap);
		//bitmap.CreateCompatibleBitmap(&dcMemory,rect.right,rect.bottom);
		pDC->StretchBlt(0,0,rect.right,rect.bottom,&dcMemory,
			0,0,bitmapWidth,bitmapHeight,SRCCOPY);
	}

	if(m_Flags)
	{
		sx = new char[pDoc->Count];
		sy = new char[pDoc->Count];
		sz = new char[pDoc->Count];
		num= new char[pDoc->Count];

//		gcvt(pDoc->svposx[i], 16, sx);
		pDC->TextOut(0,0,"序号");
		pDC->TextOut(90,0,"X");
		pDC->TextOut(290,0,"Y");
		pDC->TextOut(490,0,"Z");

		for(int i = 0; i < pDoc->Count; i ++)
		{
			gcvt(i+1, 2, num);
			gcvt(pDoc->svposx[i], 16, sx);
			gcvt(pDoc->svposy[i], 16, sy);
			gcvt(pDoc->svposz[i], 16, sz);
			pDC->TextOut(5,20*(i+1),num);
			pDC->TextOut(35,20*(i+1),sx);
			pDC->TextOut(235,20*(i+1),sy);
			pDC->TextOut(435,20*(i+1),sz);
		}
	}

	if(op==1)
	{
		sx = new char[pDoc->Count * 28];
		sy = new char[pDoc->Count * 28];
		sz = new char[pDoc->Count * 28];
		bias=new char[pDoc->Count * 28];
		num= new char[pDoc->Count * 28];
		pSPT=new CHARTIME[pDoc->Count];
//		gcvt(pDoc->svposx[i], 16, sx);
		pDC->TextOut(0,0,"序号");
		pDC->TextOut(90,0,"X");
		pDC->TextOut(290,0,"Y");
		pDC->TextOut(490,0,"Z");
		pDC->TextOut(690,0,"clockbias");
		for(int i = 0; i < pDoc->Count; i ++)
		{
/*			gcvt(pDoc->pSP3TIME[i].year, 2, pSPT[i].year);
			gcvt(pDoc->pSP3TIME[i].month, 4, pSPT[i].month);
			gcvt(pDoc->pSP3TIME[i].day, 4, pSPT[i].day);
			gcvt(pDoc->pSP3TIME[i].hour, 4, pSPT[i].hour);
			gcvt(pDoc->pSP3TIME[i].minute, 4, pSPT[i].minute);
			gcvt(pDoc->pSP3TIME[i].second, 8, pSPT[i].second);
			pDC->TextOut(5,20*(i*28+1),pSPT[i].year);
			pDC->TextOut(15,20*(i*28+1),pSPT[i].month);
			pDC->TextOut(25,20*(i*28+1),pSPT[i].day);
			pDC->TextOut(35,20*(i*28+1),pSPT[i].hour);
			pDC->TextOut(45,20*(i*28+1),pSPT[i].minute);
			pDC->TextOut(55,20*(i*28+1),pSPT[i].second);			
*/			for(int j = 0;j < 28; j ++)
			{
				gcvt(pDoc->xuhao[i*28+j], 2, num);
				gcvt(pDoc->svposx[i*28+j], 15, sx);
				gcvt(pDoc->svposy[i*28+j], 15, sy);
				gcvt(pDoc->svposz[i*28+j], 15, sz);
				gcvt(pDoc->clockbias[i*28+j], 15, bias);
				pDC->TextOut(5,20*(i*30+j+2),num);
				pDC->TextOut(35,20*(i*30+j+2),sx);
				pDC->TextOut(235,20*(i*30+j+2),sy);
				pDC->TextOut(435,20*(i*30+j+2),sz);
				pDC->TextOut(635,20*(i*30+j+2),bias);
			}
		}
	}
//	for(int i = 0; i < )
//	pDoc->svpos[i]
	// TODO: add draw code for native data here
}

/////////////////////////////////////////////////////////////////////////////
// CSatCoordView printing

BOOL CSatCoordView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void CSatCoordView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add extra initialization before printing
}

void CSatCoordView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add cleanup after printing
}

/////////////////////////////////////////////////////////////////////////////
// CSatCoordView diagnostics

#ifdef _DEBUG
void CSatCoordView::AssertValid() const
{
	CScrollView::AssertValid();
}

void CSatCoordView::Dump(CDumpContext& dc) const
{
	CScrollView::Dump(dc);
}

CSatCoordDoc* CSatCoordView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CSatCoordDoc)));
	return (CSatCoordDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CSatCoordView message handlers

void CSatCoordView::OnTransBj54Guass() 
{
	// TODO: Add your command handler code here
	CBj54Gauss dlg;
	dlg.DoModal();
}

void CSatCoordView::OnTransXi80Guass() 
{
	// TODO: Add your command handler code here
	CXi80Guass dlg;
	dlg.DoModal();
	
}

void CSatCoordView::Ontransq() 
{
	// TODO: Add your command handler code here
	CXi80Guass dlg;
	dlg.DoModal();
}

void CSatCoordView::OnTransGuassBj54() 
{
	// TODO: Add your command handler code here
	CGaussBj54 dlg;
	dlg.DoModal();
}

void CSatCoordView::OnGpscoord() 
{
	m_Flags = TRUE;
	Invalidate();
}

void CSatCoordView::OnViewWgstobj() 
{
	m_Flags = TRUE;
	Invalidate();
}

void CSatCoordView::OnViewSp3data() 
{
	// TODO: Add your command handler code here
	m_Flags = TRUE;
	//op = 1;
	Invalidate();
}

void CSatCoordView::OnWgsGauss() 
{
	// TODO: Add your command handler code here
	CWgsGauss dlg;
	dlg.DoModal();
}

void CSatCoordView::OnInitialUpdate() 
{
	CScrollView::OnInitialUpdate();
	CSize sizeTotal(2000,1648);
	CSize sizePage(sizeTotal.cx/50, sizeTotal.cy/72);
	CSize sizeLine(sizeTotal.cx/50, sizeTotal.cy/72);
	SetScrollSizes(MM_TEXT, sizeTotal, sizePage, sizeLine);
}


void CSatCoordView::OnBack() 
{
	// TODO: Add your command handler code here
	m_Flags = FALSE;

	Invalidate();
}

void CSatCoordView::OnSevenTrans() 
{
	// TODO: Add your command handler code here
	CSevenTrans dlg;
	dlg.DoModal();
	
}

void CSatCoordView::OnWgsPz90() 
{
	// TODO: Add your command handler code here
	CWgs84Pz90 dlg;
	dlg.DoModal();
}

void CSatCoordView::Onninetrans() 
{
	// TODO: Add your command handler code here
	CNineTrans	dlg;
	dlg.DoModal();
}

⌨️ 快捷键说明

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