📄 fengcheview.cpp
字号:
// FengcheView.cpp : implementation of the CFengcheView class
//
#include "stdafx.h"
#include "Fengche.h"
#include "FengcheDoc.h"
#include "FengcheView.h"
#include<math.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CFengcheView
IMPLEMENT_DYNCREATE(CFengcheView, CView)
BEGIN_MESSAGE_MAP(CFengcheView, CView)
//{{AFX_MSG_MAP(CFengcheView)
// NOTE - the ClassWizard will add and remove mapping macros here.
// DO NOT EDIT what you see in these blocks of generated code!
//}}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()
/////////////////////////////////////////////////////////////////////////////
// CFengcheView construction/destruction
CFengcheView::CFengcheView()
{
// TODO: add construction code here
nNum = 0 ;
nMaxNum = 20 ;
fAngle = 0 ;
nCentreX = 0 ;
nCentreY = 0 ;
}
CFengcheView::~CFengcheView()
{
}
BOOL CFengcheView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return CView::PreCreateWindow(cs);
}
/////////////////////////////////////////////////////////////////////////////
// CFengcheView drawing
#define pi 3.1415926
void CFengcheView::OnDraw(CDC* pDC)
{
CFengcheDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CPen pen ;
CBrush brush ;
pen.CreatePen(PS_DOT,1,RGB(0,0,0));
// pDC->SetMapMode(MM_ANISOTROPIC);
pDC->SetWindowOrg(0,0);
pDC->SetWindowExt(400,300) ;
//pDC->SetViewportExt(600,450);
pDC->Ellipse(100,100,300,300);
DeleteObject(pen) ;
nNum = nNum%20 ;
//brush.CreateHatchBrush(HS_BDIAGONAL,RGB(255,0,0));
//brush.CreateHatchBrush(PS_DOT,RGB(255,0,0));
brush.CreateSolidBrush(RGB(255,0,0));
fAngle = 2*pi/nMaxNum*nNum ;
nCentreX = (int)(50*cos(fAngle));
nCentreY = (int)(50*sin(fAngle));
pDC->Pie(nCentreX-50,nCentreY-50,
nCentreX+50,nCentreY+50,
(int)(nCentreX+50*cos(fAngle)),(int)(nCentreY+50*sin(fAngle)),
(int)(nCentreX+50*cos(fAngle+pi)),(int)(nCentreY+50*sin(fAngle+pi)));
//brush.CreateHatchBrush(HS_BDIAGONAL,RGB(255,255,0));
brush.CreateSolidBrush(RGB(255,255,0));
nCentreX = (int)(50*cos(fAngle+2*pi/3));
nCentreY = (int)(50*sin(fAngle+2*pi/3));
pDC->Pie(nCentreX-50,nCentreY-50,
nCentreX+50,nCentreY+50,
(int)(nCentreX+50*cos(fAngle+2*pi/3)),(int)(nCentreY+50*sin(fAngle+2*pi/3)),
(int)(nCentreX+50*cos(fAngle+pi+2*pi/3)),(int)(nCentreY+50*sin(fAngle+pi+2*pi/3)));
//brush.CreateHatchBrush(HS_BDIAGONAL,RGB(0,255,255));
brush.CreateSolidBrush(RGB(0,255,255));
nCentreX = (int)(50*cos(fAngle+4*pi/3));
nCentreY = (int)(50*sin(fAngle+4*pi/3));
pDC->Pie(nCentreX-50,nCentreY-50,
nCentreX+50,nCentreY+50,
(int)(nCentreX+50*cos(fAngle+4*pi/3)),(int)(nCentreY+50*sin(fAngle+4*pi/3)),
(int)(nCentreX+50*cos(fAngle+pi+4*pi/3)),(int)(nCentreY+50*sin(fAngle+pi+4*pi/3)));
//DeleteObject(brush);
nNum++;
Sleep(100);
Invalidate();
}
/////////////////////////////////////////////////////////////////////////////
// CFengcheView printing
BOOL CFengcheView::OnPreparePrinting(CPrintInfo* pInfo)
{
// default preparation
return DoPreparePrinting(pInfo);
}
void CFengcheView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add extra initialization before printing
}
void CFengcheView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add cleanup after printing
}
/////////////////////////////////////////////////////////////////////////////
// CFengcheView diagnostics
#ifdef _DEBUG
void CFengcheView::AssertValid() const
{
CView::AssertValid();
}
void CFengcheView::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
}
CFengcheDoc* CFengcheView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CFengcheDoc)));
return (CFengcheDoc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CFengcheView message handlers
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -