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

📄 graphview.cpp

📁 Visual c++.程序设计培训教程
💻 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 + -