资源简介

MFC实现简易画图程序,可以画矩形,圆形,三角形,直线,点。可以旋转、放大、缩小、平移。

资源截图

代码片段和文件信息

// Circle.cpp: implementation of the CCircle class.
//
//////////////////////////////////////////////////////////////////////

#include “stdafx.h“
#include “Graphic.h“
#include “Circle.h“
#include “math.h“

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

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

CCircle::CCircle()
{

}

CCircle::CCircle(UINT drawType  CPoint ptOrigin  CPoint ptEnd  COLORREF colorBorder  COLORREF colorFilled  int borderWidth) :
CGraph(drawType  ptOrigin  ptEnd  colorBorder  colorFilled  borderWidth ) 
{

}

void CCircle::draw( CDC* pDC )
{
/*设置画刷*/
CBrush *pBrush ;
if ( m_colorFilled == -1 )
pBrush = CBrush::FromHandle ( (HBRUSH)GetStockobject( NULL_BRUSH ) ) ;//创建透明的画刷
else
{
pBrush = new CBrush ;
pBrush->CreateSolidBrush( m_colorFilled ) ;
}
CBrush *pOldBrush = pDC->Selectobject( pBrush ) ; //将画刷选择到设备描述表当中
/*设置画刷*/
/*设置画笔*/
CPen pen( PS_SOLID  m_borderWidth  m_colorBorder ) ;
CPen *pOldPen = pDC->Selectobject( &pen ) ;
/*设置画笔*/

pDC->Ellipse( CRect( m_ptOrigin  m_ptEnd ) ) ; //画图

pDC->Selectobject( pOldBrush ) ;//释放画刷避免内存泄露
if( m_colorFilled != -1 )
delete pBrush ;
pDC->Selectobject( pOldPen ) ;
}

CPoint CCircle::getCenter( )
{
return CPoint( (m_ptOrigin.x + m_ptEnd.x) / 2  (m_ptOrigin.y + m_ptEnd.y) / 2 ) ;
}

CCircle::~CCircle()
{

}

void CCircle::rotateShun()
{
if ( m_drawType == 4 )
{
CPoint center( getCenter() ) ;
int x  y ;
x = static_cast(( m_ptOrigin.x - center.x ) * cos(pi/2) - ( m_ptOrigin.y - center.y ) * sin(pi/2)) + center.x ;
y = static_cast(( m_ptOrigin.x - center.x ) * sin(pi/2) + ( m_ptOrigin.y - center.y ) * cos(pi/2)) + center.y ;
m_ptOrigin.x = x ;
m_ptOrigin.y = y ;
x = static_cast(( m_ptEnd.x - center.x ) * cos(pi/2) - ( m_ptEnd.y - center.y ) * sin(pi/2)) + center.x ;
y = static_cast(( m_ptEnd.x - center.x ) * sin(pi/2) + ( m_ptEnd.y - center.y ) * cos(pi/2)) + center.y ;
m_ptEnd.x = x ;
m_ptEnd.y = y ;
}
}

void CCircle::rotateNi()
{
if ( m_drawType == 4 )
{
CPoint center( getCenter() ) ;
int x  y ;
x = static_cast(( m_ptOrigin.x - center.x ) * cos(pi/2) - ( m_ptOrigin.y - center.y ) * sin(pi/2)) + center.x ;
y = static_cast(( m_ptOrigin.x - center.x ) * sin(pi/2) + ( m_ptOrigin.y - center.y ) * cos(pi/2)) + center.y ;
m_ptOrigin.x = x ;
m_ptOrigin.y = y ;
x = static_cast(( m_ptEnd.x - center.x ) * cos(pi/2) - ( m_ptEnd.y - center.y ) * sin(pi/2)) + center.x ;
y = static_cast(( m_ptEnd.x - center.x ) * sin(pi/2) + ( m_ptEnd.y - center.y ) * cos(pi/2)) + center.y ;
m_ptEnd.x = x ;
m_ptEnd.y = y ;
}
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2937  2012-07-20 08:44  Graphic\Circle.cpp

     文件        687  2012-07-20 06:36  Graphic\Circle.h

     文件      12432  2012-07-20 08:44  Graphic\Debug\Circle.obj

     文件       7801  2012-07-20 08:44  Graphic\Debug\Circle.sbr

     文件       9747  2012-07-20 06:44  Graphic\Debug\Dot.obj

     文件          0  2012-07-20 06:44  Graphic\Debug\Dot.sbr

     文件       7906  2012-07-20 06:44  Graphic\Debug\Graph.obj

     文件          0  2012-07-20 06:44  Graphic\Debug\Graph.sbr

     文件    3752960  2012-07-20 07:27  Graphic\Debug\Graphic.bsc

     文件     159811  2012-07-20 08:51  Graphic\Debug\Graphic.exe

     文件     404252  2012-07-20 08:51  Graphic\Debug\Graphic.ilk

     文件      23365  2012-07-20 06:36  Graphic\Debug\Graphic.obj

     文件    6935956  2012-07-18 23:25  Graphic\Debug\Graphic.pch

     文件     558080  2012-07-20 08:51  Graphic\Debug\Graphic.pdb

     文件       9868  2012-07-20 08:51  Graphic\Debug\Graphic.res

     文件          0  2012-07-20 06:36  Graphic\Debug\Graphic.sbr

     文件      14818  2012-07-18 23:25  Graphic\Debug\GraphicDoc.obj

     文件          0  2012-07-18 23:25  Graphic\Debug\GraphicDoc.sbr

     文件      63419  2012-07-20 08:51  Graphic\Debug\GraphicView.obj

     文件      18027  2012-07-20 08:51  Graphic\Debug\GraphicView.sbr

     文件      11383  2012-07-20 07:01  Graphic\Debug\Line.obj

     文件          0  2012-07-20 07:01  Graphic\Debug\Line.sbr

     文件      19969  2012-07-18 23:25  Graphic\Debug\MainFrm.obj

     文件          0  2012-07-18 23:25  Graphic\Debug\MainFrm.sbr

     文件      19996  2012-07-20 08:12  Graphic\Debug\Rectangle.obj

     文件       9530  2012-07-20 08:12  Graphic\Debug\Rectangle.sbr

     文件     105680  2012-07-18 23:25  Graphic\Debug\StdAfx.obj

     文件    1376312  2012-07-18 23:25  Graphic\Debug\StdAfx.sbr

     文件      19470  2012-07-20 07:14  Graphic\Debug\ThreeAngle.obj

     文件          0  2012-07-20 07:14  Graphic\Debug\ThreeAngle.sbr

............此处省略63个文件信息

评论

共有 条评论