📄 graphview.cpp
字号:
// GraphView.cpp : implementation of the CGraphView class
//
#include "stdafx.h"
#include "Graph.h"
#include "GraphDoc.h"
#include "GraphView.h"
#include <math.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CGraphView
IMPLEMENT_DYNCREATE(CGraphView, CView)
BEGIN_MESSAGE_MAP(CGraphView, CView)
//{{AFX_MSG_MAP(CGraphView)
ON_COMMAND(ID_DRAW_ELLIPSE, OnDrawEllipse)
//}}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()
/////////////////////////////////////////////////////////////////////////////
// CGraphView construction/destruction
CGraphView::CGraphView()
{
// TODO: add construction code here
}
CGraphView::~CGraphView()
{
}
BOOL CGraphView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return CView::PreCreateWindow(cs);
}
/////////////////////////////////////////////////////////////////////////////
// CGraphView drawing
void CGraphView::OnDraw(CDC* pDC)
{
CGraphDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
/*
////////////////////////////////////////////////
// 使用画笔 //
////////////////////////////////////////////////
//第一步:创建一支新画笔
CPen pen(PS_SOLID, 1, RGB(255,0,0));
// CPen pen(PS_DASHDOT, 1, RGB(255,0,0));
//第二步:选择新画笔到设备环境中,同时保存旧画笔
CPen * pOldPen = pDC->SelectObject(&pen);
*/
/*
////////////////////////////////////////////////
// 使用画刷 //
////////////////////////////////////////////////
//第一步:创建一支新画刷
CBrush brush(RGB(255,0,0)); //创建实体画刷
// CBrush brush(HS_CROSS, RGB(255,0,0)); //创建阴影模式画刷
//第二步:选择新画刷到设备环境中,同时保存旧画刷
CBrush * pOldBrush = pDC->SelectObject(&brush);
*/
////////////////////////////////////////////////
// 常用的绘图函数 //
////////////////////////////////////////////////
//绘制一个彩色点
pDC->TextOut(20, 20, "点");
pDC->SetPixel(100, 40, RGB(255,0,0));
//绘制直线
pDC->TextOut(320, 20,"线段");
pDC->MoveTo(400, 40);
pDC->LineTo(500, 40);
//绘制折线
pDC->TextOut(20, 170, "折线");
POINT polyline[4]={{240,240},{80,120},{240,120},{80,240}};
pDC->Polyline(polyline,4);
//绘制矩形
pDC->TextOut(320, 170, "矩形");
pDC->Rectangle(390, 110, 600, 230);
//绘制椭圆
pDC->TextOut(20, 320, "椭圆");
pDC->Ellipse(80, 260, 280, 380);
//绘制多边形
pDC->TextOut(320, 320, "多边形");
POINT polygon[3]={{380,330},{530,260},{500,360}};
pDC->Polygon(polygon,3);
//第三步:恢复设备环境的旧画笔,以便释放新画笔
// pDC->SelectObject(pOldPen);
//第三步:恢复设备环境的旧画刷,以便释放新画刷
// pDC->SelectObject(pOldBrush);
}
/////////////////////////////////////////////////////////////////////////////
// CGraphView printing
BOOL CGraphView::OnPreparePrinting(CPrintInfo* pInfo)
{
// default preparation
return DoPreparePrinting(pInfo);
}
void CGraphView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add extra initialization before printing
}
void CGraphView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add cleanup after printing
}
/////////////////////////////////////////////////////////////////////////////
// CGraphView diagnostics
#ifdef _DEBUG
void CGraphView::AssertValid() const
{
CView::AssertValid();
}
void CGraphView::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
}
CGraphDoc* CGraphView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CGraphDoc)));
return (CGraphDoc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CGraphView message handlers
void CGraphView::OnDrawEllipse()
{
// TODO: Add your command handler code here
CDC * pDC;
//调用CGraphView::GetDC()获取设备环境
pDC = GetDC();
pDC->Ellipse(0, 0, 100, 100);
////
// 从资源中装入位图
{
//第一步:声明一个CBitmap对象,并从资源中装入位图
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP1);
// bitmap.LoadBitmap(MAKEINTRESOURCE(IDB_WZD));
//第二步:创建一个兼容DC
CDC dcComp;
dcComp.CreateCompatibleDC(pDC);
//第三步:将位图选入兼容DC中
dcComp.SelectObject(&bitmap);
BITMAP bmInfo;
bitmap.GetObject(sizeof(bmInfo),&bmInfo);
//第四步:使用BitBlt函数显示位图
pDC->BitBlt(0,0, //显示位置
bmInfo.bmWidth,bmInfo.bmHeight, //显示位图的宽度和高度
&dcComp, //位图所在的兼容DC
0,0, //兼容DC中的位置
SRCCOPY); //显示方式
}
////
//使用完后调用CGraphView::ReleaseDC()释放设备环境
ReleaseDC(pDC);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -