?? pingchaview.cpp
字號(hào):
// PingChaView.cpp : implementation of the CPingChaView class
//
#include "stdafx.h"
#include "PingCha.h"
#include "PingChaDoc.h"
#include "PingChaView.h"
#include "FuheshuizhunDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CPingChaView
IMPLEMENT_DYNCREATE(CPingChaView, CView)
BEGIN_MESSAGE_MAP(CPingChaView, CView)
//{{AFX_MSG_MAP(CPingChaView)
ON_COMMAND(ID_FUHESHUIZHUN, OnFuheshuizhun)
//}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CPingChaView construction/destruction
CPingChaView::CPingChaView()
{
// TODO: add construction code here
m_x[0]=50;
m_y[0]=0;
}
CPingChaView::~CPingChaView()
{
}
BOOL CPingChaView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return CView::PreCreateWindow(cs);
}
/////////////////////////////////////////////////////////////////////////////
// CPingChaView drawing
void CPingChaView::OnDraw(CDC* pDC)
{
CPingChaDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
pDC->MoveTo(50,30);
pDC->LineTo(50,370);
pDC->MoveTo(30,350);
pDC->LineTo(720,350);
pDC->TextOut(20,30,"X軸");
pDC->TextOut(20,45,"(Km)");
pDC->TextOut(20,360,"O點(diǎn)");
pDC->TextOut(700,355,"Y軸");
pDC->TextOut(725,355,"(Km)");
pDC->TextOut(300,10,"附合水準(zhǔn)路線示意圖");
CPen *pPenOld,PenNew;
PenNew.CreatePen(PS_DASHDOTDOT,1,RGB(0,255,0));
pPenOld=pDC->SelectObject(&PenNew);
for(int i=0;i<15;i++)
{
pDC->MoveTo(52,50+20*i);
pDC->LineTo(700,50+20*i);
}
for(i=1;i<33;i++)
{
pDC->MoveTo(50+20*i,50);
pDC->LineTo(50+20*i,350);
}
for(i=0;i<=m_ViewNum;i++) //通過(guò)坐標(biāo)正算生成各點(diǎn)坐標(biāo),40度,20度方向角交叉
{
if(i%2==0)
{
m_x[i+1]=(int)(20*m_Viewfs[i]*0.766044)+m_x[i];//cos40=0.766044
m_y[i+1]=(int)(20*m_Viewfs[i]*0.642788)+m_y[i];//sin40=0.642788
}
else if(i/2!=0)
{
m_x[i+1]=(int)(20*m_Viewfs[i]*0.939693)+m_x[i]; //cos20=0.939693
m_y[i+1]=(int)(20*m_Viewfs[i]*0.34202)+m_y[i]; //sin20=0.34202
}
}
CPen *pPenOld1,PenNew1;
PenNew1.CreatePen(PS_DASH,2,RGB(0,128,0));
pPenOld1=pDC->SelectObject(&PenNew1);
for(i=0;i<=m_ViewNum;i++)
{
pDC->MoveTo(m_x[i]+50,350-m_y[i]);
pDC->LineTo(m_x[i+1]+50,350-m_y[i+1]);
}
pDC->SelectObject(pPenOld1);
PenNew1.DeleteObject();
// TODO: add draw code for native data here
}
/////////////////////////////////////////////////////////////////////////////
// CPingChaView printing
BOOL CPingChaView::OnPreparePrinting(CPrintInfo* pInfo)
{
// default preparation
return DoPreparePrinting(pInfo);
}
void CPingChaView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add extra initialization before printing
}
void CPingChaView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add cleanup after printing
}
/////////////////////////////////////////////////////////////////////////////
// CPingChaView diagnostics
#ifdef _DEBUG
void CPingChaView::AssertValid() const
{
CView::AssertValid();
}
void CPingChaView::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
}
CPingChaDoc* CPingChaView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CPingChaDoc)));
return (CPingChaDoc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CPingChaView message handlers
void CPingChaView::DrawLine(int dlgNum,float *m_fs)
{
m_ViewNum=dlgNum;
m_Viewfs=m_fs;
Invalidate();
}
void CPingChaView::OnFuheshuizhun()
{
// TODO: Add your command handler code here
CFuheshuizhunDlg dlg;
dlg.DoModal();
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -