资源简介
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++游戏编程之扫雷大量注释新手福音
相关资源
- 基于MFC的TCP调试助手源码95706
- 基于mfc的多线程文件传输
- MFC数字钟(基于VC6.0)
- VC++MFC小游戏实例教程(实例)+MFC类库
- ChartCtrl控件库(可在VS2019中使用)
- 商品库存管理系统 C++ MFC
- Qt画图工具源码(qgraphics draw)
- 使用QWT库实现接收串口数据,并根据
- mfc 调用redis
- MFC视频播放器源码(支持avi/wma/mp3等格
- c++ 画图(14Qt-XPS)
- mfc绘图大全(画直线、矩形、椭圆)
- MFC控件重绘
- hook,捕获所有案件,查找所有窗口,
- (学习)VS2010之MFC入门到精通教程
- MFC文档_视图_框架_模板结构体系深入
- 简单员工管理系统(适合初学MFC)
- MFC五子棋游戏
- MFC UDP编程
- MFC的异步网络通讯应用程序
- C++MFC模块讲解,黑发程序员课程整理
- 一个简单而强大的基于MFC的web server源
- 基于MFC的VC++仿QQ浏览器源码(雏形)
- MFCaccess.rar
- VC++MFC课程设计的学生成绩管理系统
- MFC 日历控件 万年历 Calendar自绘
- CrystalDiskInfo-HDD/SSD硬盘信息,SMART信息
- MFC自定义界面HUI,高效简单,含详细
- 仿射密码-Affine cipher
- c++MFC车牌自动识别定位,只能定位和
评论
共有 条评论