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

📄 sam绘图view.cpp

📁 能够很好的画各种图形
💻 CPP
字号:
// sam绘图View.cpp : implementation of the CSamView class
//

#include "stdafx.h"
#include "sam绘图.h"

#include "sam绘图Doc.h"
#include "sam绘图View.h"
#include"SetDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CSamView


IMPLEMENT_DYNCREATE(CSamView, CView)

BEGIN_MESSAGE_MAP(CSamView, CView)
	//{{AFX_MSG_MAP(CSamView)
	//}}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()

/////////////////////////////////////////////////////////////////////////////
// CSamView construction/destruction

CSamView::CSamView()
{
	// TODO: add construction code here
	 //m_Pcolor="";
	 //m_Bcolor="";
	 ///m_Dstyle=-1;
	 //m_Pstyle=-1;
	 //m_Bstyle=-1;
	 
	
	

}

CSamView::~CSamView()
{
}

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

	return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CSamView drawing

void CSamView::OnDraw(CDC* pDC)
{
	CSamDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
	CPen NewPen;
	CPen* OldPen;
	CBrush NewBrush;
	CBrush* OldBrush;
	COLORREF Pcolor,Bcolor;
	if(m_Pcolor=="Red")
	{
		Pcolor=RGB(255,0,0);
	}
	if(m_Pcolor=="Green")
	{
		Pcolor=RGB(0,255,0);
	}
	if(m_Pcolor=="Blue")
	{
		Pcolor=RGB(0,0,255);
	}


	if(m_Bcolor=="Red")
	{
		Bcolor=RGB(255,0,0);
	}
	if(m_Bcolor=="Green")
	{
		Bcolor=RGB(0,255,0);
	}
	if(m_Bcolor=="Blue")
	{
		Bcolor=RGB(0,0,255);
	}

	switch(m_Pstyle)
	{
	case 0:
		NewPen.CreatePen(0,1,Pcolor);
		break;
	case 1:
		NewPen.CreatePen(1,1,Pcolor);
		break;
	case 2:
		NewPen.CreatePen(2,1,Pcolor);
		break;
	case 3:
		NewPen.CreatePen(3,1,Pcolor);
		break;
	}
	OldPen=pDC->SelectObject(&NewPen);

	switch(m_Bstyle)
	{
	case 0:
		NewBrush.CreateSolidBrush(Bcolor);
		break;
	case 1:
		NewBrush.CreateHatchBrush(HS_CROSS,Bcolor);
		break;
	case 2:
		NewBrush.CreateHatchBrush(HS_FDIAGONAL,Bcolor);
		break;
	case 3:
		NewBrush.CreateHatchBrush(HS_BDIAGONAL,Bcolor);
		break;
	}
	OldBrush=pDC->SelectObject(&NewBrush);

	switch(m_Dstyle)
	{
	case 0:
		pDC->MoveTo(100,100);
		pDC->LineTo(400,400);
		pDC->SelectObject(OldPen);
		pDC->SelectObject(OldBrush);
		NewBrush.DeleteObject();
		break;
	case 1:
		pDC->Ellipse(50,50,500,500);
		pDC->SelectObject(OldPen);
		pDC->SelectObject(OldBrush);
		NewBrush.DeleteObject();		
		break;
	case 2:
		pDC->Rectangle(50,50,500,500);
		pDC->SelectObject(OldPen);
		pDC->SelectObject(OldBrush);
		NewBrush.DeleteObject();		
		break;
	case 3:
		pDC->RoundRect(50,50,500,500,20,20);
		pDC->SelectObject(OldPen);
		pDC->SelectObject(OldBrush);
		NewBrush.DeleteObject();		
		break;
	}




}

/////////////////////////////////////////////////////////////////////////////
// CSamView printing

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

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

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

/////////////////////////////////////////////////////////////////////////////
// CSamView diagnostics

#ifdef _DEBUG
void CSamView::AssertValid() const
{
	CView::AssertValid();
}

void CSamView::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}

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

/////////////////////////////////////////////////////////////////////////////
// CSamView message handlers

void CSamView::OnSet() 
{
	// TODO: Add your command handler code here
	CSetDlg SetDlg;
	if(IDOK==SetDlg.DoModal())
	{
		m_Bcolor=SetDlg.m_Bcolor;
		m_Pcolor=SetDlg.m_Pcolor;
		m_Pstyle=SetDlg.m_Pstyle;
		m_Bstyle=SetDlg.m_Bstyle;
		m_Dstyle=SetDlg.m_Dstyle;
		Invalidate();
	}
	
}

⌨️ 快捷键说明

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