MFC实现简易画图程序,可以画矩形,圆形,三角形,直线,点。可以旋转、放大、缩小、平移。
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2937 2012-07-20 08:44 GraphicCircle.cpp
文件 687 2012-07-20 06:36 GraphicCircle.h
文件 12432 2012-07-20 08:44 GraphicDebugCircle.obj
文件 7801 2012-07-20 08:44 GraphicDebugCircle.sbr
文件 9747 2012-07-20 06:44 GraphicDebugDot.obj
文件 0 2012-07-20 06:44 GraphicDebugDot.sbr
文件 7906 2012-07-20 06:44 GraphicDebugGraph.obj
文件 0 2012-07-20 06:44 GraphicDebugGraph.sbr
文件 3752960 2012-07-20 07:27 GraphicDebugGraphic.bsc
文件 159811 2012-07-20 08:51 GraphicDebugGraphic.exe
文件 404252 2012-07-20 08:51 GraphicDebugGraphic.ilk
文件 23365 2012-07-20 06:36 GraphicDebugGraphic.obj
文件 6935956 2012-07-18 23:25 GraphicDebugGraphic.pch
文件 558080 2012-07-20 08:51 GraphicDebugGraphic.pdb
文件 9868 2012-07-20 08:51 GraphicDebugGraphic.res
文件 0 2012-07-20 06:36 GraphicDebugGraphic.sbr
文件 14818 2012-07-18 23:25 GraphicDebugGraphicDoc.obj
文件 0 2012-07-18 23:25 GraphicDebugGraphicDoc.sbr
文件 63419 2012-07-20 08:51 GraphicDebugGraphicView.obj
文件 18027 2012-07-20 08:51 GraphicDebugGraphicView.sbr
文件 11383 2012-07-20 07:01 GraphicDebugLine.obj
文件 0 2012-07-20 07:01 GraphicDebugLine.sbr
文件 19969 2012-07-18 23:25 GraphicDebugMainFrm.obj
文件 0 2012-07-18 23:25 GraphicDebugMainFrm.sbr
文件 19996 2012-07-20 08:12 GraphicDebugRectangle.obj
文件 9530 2012-07-20 08:12 GraphicDebugRectangle.sbr
文件 105680 2012-07-18 23:25 GraphicDebugStdAfx.obj
文件 1376312 2012-07-18 23:25 GraphicDebugStdAfx.sbr
文件 19470 2012-07-20 07:14 GraphicDebugThreeAngle.obj
文件 0 2012-07-20 07:14 GraphicDebugThreeAngle.sbr
............此处省略63个文件信息
// 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 GraphicCircle.cpp
文件 687 2012-07-20 06:36 GraphicCircle.h
文件 12432 2012-07-20 08:44 GraphicDebugCircle.obj
文件 7801 2012-07-20 08:44 GraphicDebugCircle.sbr
文件 9747 2012-07-20 06:44 GraphicDebugDot.obj
文件 0 2012-07-20 06:44 GraphicDebugDot.sbr
文件 7906 2012-07-20 06:44 GraphicDebugGraph.obj
文件 0 2012-07-20 06:44 GraphicDebugGraph.sbr
文件 3752960 2012-07-20 07:27 GraphicDebugGraphic.bsc
文件 159811 2012-07-20 08:51 GraphicDebugGraphic.exe
文件 404252 2012-07-20 08:51 GraphicDebugGraphic.ilk
文件 23365 2012-07-20 06:36 GraphicDebugGraphic.obj
文件 6935956 2012-07-18 23:25 GraphicDebugGraphic.pch
文件 558080 2012-07-20 08:51 GraphicDebugGraphic.pdb
文件 9868 2012-07-20 08:51 GraphicDebugGraphic.res
文件 0 2012-07-20 06:36 GraphicDebugGraphic.sbr
文件 14818 2012-07-18 23:25 GraphicDebugGraphicDoc.obj
文件 0 2012-07-18 23:25 GraphicDebugGraphicDoc.sbr
文件 63419 2012-07-20 08:51 GraphicDebugGraphicView.obj
文件 18027 2012-07-20 08:51 GraphicDebugGraphicView.sbr
文件 11383 2012-07-20 07:01 GraphicDebugLine.obj
文件 0 2012-07-20 07:01 GraphicDebugLine.sbr
文件 19969 2012-07-18 23:25 GraphicDebugMainFrm.obj
文件 0 2012-07-18 23:25 GraphicDebugMainFrm.sbr
文件 19996 2012-07-20 08:12 GraphicDebugRectangle.obj
文件 9530 2012-07-20 08:12 GraphicDebugRectangle.sbr
文件 105680 2012-07-18 23:25 GraphicDebugStdAfx.obj
文件 1376312 2012-07-18 23:25 GraphicDebugStdAfx.sbr
文件 19470 2012-07-20 07:14 GraphicDebugThreeAngle.obj
文件 0 2012-07-20 07:14 GraphicDebugThreeAngle.sbr
............此处省略63个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)