资源简介
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++游戏编程之扫雷大量注释新手福音
相关资源
- gmm mfcc说话人识别
- MFC登录注册系统C++
- mfc42d.dll 【万能,适用于32位,64位】
- 基于MFC的电梯调度仿真程序
- mfc连连看代码
- 基于特征脸的人脸识别MFC+OpenCV
- cv::namedWindowGLFWwindow以及notepad嵌入MF
- wumpus世界(MFC编写)
- MFC写的对文件内容的DES加解密
- vs2010 MFC基础教程
- 基于MFC的登陆界面
- 基于Visual C++的屏幕录像完整源代码
- 通讯录MFC程序,C++大作业
- 数据结构课程设计,C++计算器MFC
- 一个简单的MFC的MDI程序-Sketcher
- mfc 任意多边形填充色
- VC开发MFC局域网屏幕监控系统完美版
- SNL语言编译器GUI VC++ 2008版 MFC实现可
- 简单画图软件c++
- MFC邮件发送程序(C语言版带界面)
- 基于udp的socket编程
- VC6.0三维画图画三维球,立方体,矩形
- MFC下TCP服务器
- MFC根据广播星历计算GPS卫星位置
- MFC 单文档 实现opengl 三维旋转 缩放
- MFC课程设计 职工信息管理系统含完整
- MFC可视化_迷宫算法_最短路径
- opencv图像处理MFC
- 图书管理系统mfc+sql
- MFC编写DDA画直线和圆
评论
共有 条评论