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

📄 zcr14rect.cpp

📁 一个画笔的程序,可以进行直线,圆和方形等图形进行画图,并可以撤消上一步的动作
💻 CPP
字号:
// ZCR14Rect.cpp: implementation of the CZCR14Rect class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "ZCR14Paint.h"
#include "ZCR14Rect.h"
#include "OptionZone.h"
#include "ColorPane.h"

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

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CZCR14Rect::CZCR14Rect()
{
	m_nPenWidth=1;
    m_clrPaint=RGB(0,0,0);
	m_nType=RECT_HOLLOW;
}

CZCR14Rect::~CZCR14Rect()
{

}

void CZCR14Rect::Draw(CDC *pDC)
{
	CPen pen(PS_SOLID,m_nPenWidth, m_clrPaint);
	CPen* pOldPen=(CPen*)pDC->SelectObject(&pen);
	
		pDC->SetROP2(R2_NOTXORPEN);
	switch(m_nType) 
	{
	case RECT_HOLLOW:
		{
		pDC->Rectangle(m_ptStart.x,m_ptStart.y,m_ptEnd.x,m_ptEnd.y);
		break;
		}
	case RECT_SOLID:
		{
		CBrush Brush;
		//CColorPane m_colorpane;
		Brush.CreateSolidBrush(m_clrCanvase);
        //Brush.CreateSolidBrush(m_colorpane.GetCanvasColor());
		CBrush*pOldBrush=pDC->SelectObject(&Brush);
		pDC->Rectangle(m_ptStart.x,m_ptStart.y,m_ptEnd.x,m_ptEnd.y);
		pDC->SelectObject(pOldBrush);
		break;
		}
	case RECT_REGULAR:
		{
		pDC->SelectObject(pOldPen);
		CPen pen(PS_SOLID,1,m_clrCanvase);
		CPen* pOldPen=pDC->SelectObject(&pen);
		//CPen pen;
	
        //pen.CreatePen(PS_NULL,0,0);
		CBrush brush;
		brush.CreateSolidBrush(m_clrCanvase);
		CBrush* pOldBrush=pDC->SelectObject(&brush);
		pDC->Rectangle(m_ptStart.x,m_ptStart.y,m_ptEnd.x,m_ptEnd.y);
		pDC->SelectObject(pOldPen);
		pDC->SelectObject(pOldBrush);
		break;
		}
		
	}
	pDC->SelectObject(pOldPen);
}

void CZCR14Rect::SetPoint(CPoint pStart, CPoint pEnd)
{
   m_ptStart=pStart;
   m_ptEnd=pEnd;
}

void CZCR14Rect::SetTypeCanvas(int nType, COLORREF nCanvas)
{
	m_nType=nType;
	m_clrCanvase=nCanvas;
}

void CZCR14Rect::SetPenWidthColor(int nPenWidth, COLORREF clrPaint)
{
	m_nPenWidth=nPenWidth;
	m_clrPaint=clrPaint;
}
IMPLEMENT_SERIAL(CZCR14Rect,CZCR14Shape,1)
void CZCR14Rect::Serialize(CArchive &ar)
{
	CZCR14Shape::Serialize(ar);
	    if(ar.IsStoring())
	    {
	    
	      ar<<m_ptStart<<m_ptEnd<<m_nPenWidth<<m_clrPaint<<m_nType<<m_clrCanvase;
	    }
	    else
	    {
	 	   ar>>m_ptStart>>m_ptEnd>>m_nPenWidth>>m_clrPaint>>m_nType>>m_clrCanvase;
	    }
}

⌨️ 快捷键说明

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