資源簡介
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個文件信息
- 上一篇:C++圖形系統實現俄羅斯方塊小游戲
- 下一篇:C++游戲編程之掃雷大量注釋新手福音
評論
共有 條評論