资源简介
在VS2015环境下,利用MFC框架实现的一款高仿“画图”工具,实现绝大部分功能甚至更多创新点。(注释超详细)
实现了点、直线、曲线、折线、矩形、圆形、多边形等等形状,并且具有区域限制、鼠标捕捉等功能;
实现了不同笔型,包括铅笔、圆珠笔、荧光笔等等;
可以根据不同的笔设置不同的笔宽和笔色以及虚线、点线等等功能;
实现了多种画图工具,包括不限于橡皮、笔刷子、油漆桶、部分区域颜色填充、设置字体和颜色、添加文字;
实现放大镜功能等;
添加多个资源文件,制作工具栏,设置工具栏,实现滚动条滚屏操作等;
实现保存图片、关闭保存等等功能。
一句话概括一下,“画图”有的这里基本都有,“画图”没有的,这里还有。
代码片段和文件信息
// BottomFormView.cpp : 实现文件
//
#include “stdafx.h“
#include “WTImage.h“
#include “BottomFormView.h“
#include “MainShape.h“
#include “TopFormView.h“
#include “MainFrm.h“
#include “Graph.h“
#include “SettingDlg.h“
#include “WTImageDoc.h“
#include “MagnifyDlg.h“
// 放大镜功能中用到
#define MAGNIFIERSIZE 30 //矩形大小
#define MAGNIFYINGMULTIPLE 4 //放大倍数
#define OFFSETWIDE 16 //偏离光标热点(宽)
#define OFFSETHIGH 20 //偏离光标热点(高)
CBottomFormView *pBottomFormView;
// CBottomFormView
IMPLEMENT_DYNCREATE(CBottomFormView CFormView)
CBottomFormView::CBottomFormView()
: CFormView(IDD_BOTTOMFORMVIEW)
{
pBottomFormView = this;
m_DrawType = 0;
m_BtisDown = false;
m_nLineWidth = 0;
m_nLinestyle = 0;
m_color = RGB(0 0 0);
m_color_lightpen = RGB(255 255 77);
m_strFontName = ““;
m_pMDC = new CDC();
m_ptPolyFirst = 0;
m_ptPolyLast = 0;
m_PolyCount = 0;
m_strLine = ““;
m_ptTextOrigin = 0;
m_flagFullPaint = false;
m_rectTracker.m_nstyle = CRectTracker::resizeInside | CRectTracker::dottedLine; //初始化橡皮筋类
m_listPos = 0;
m_Close = true; //默认点关闭时就置位为关
}
CBottomFormView::~CBottomFormView()
{
}
void CBottomFormView::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CBottomFormView CFormView)
ON_WM_LBUTTONDOWN()
ON_WM_LBUTTONUP()
ON_WM_MOUSEMOVE()
ON_WM_RBUTTONUP()
ON_WM_CHAR()
ON_COMMAND(ID_DRAW_SAVE &CBottomFormView::OnFileSave)
END_MESSAGE_MAP()
// CBottomFormView 诊断
#ifdef _DEBUG
void CBottomFormView::AssertValid() const
{
CFormView::AssertValid();
}
#ifndef _WIN32_WCE
void CBottomFormView::Dump(CDumpContext& dc) const
{
CFormView::Dump(dc);
}
#endif
#endif //_DEBUG
// CBottomFormView 消息处理程序
void CBottomFormView::OnInitialUpdate() //视图窗口完全建立后第一个被框架调用的函数
{
CScrollView::OnInitialUpdate();
SetScrollSizes(MM_TEXT CSize(GetSystemMetrics(SM_CXSCREEN) GetSystemMetrics(SM_CYSCREEN)));
}
void CBottomFormView::OnDraw(CDC* pDC)
{
//TODO: 在此添加专用代码 或 调用基类
CRect rcBottomView(-1-1 GetSystemMetrics(SM_CXSCREEN) GetSystemMetrics(SM_CYSCREEN)); //给下半部分纸界面上色
pDC->FillRect(&rcBottomView &CBrush(RGB(255 255 255)));
m_scRollpt = GetScrollPosition();
CClientDC dc(this); //创建dc
dc.SetViewportOrg(0 0);
dc.BitBlt(0 0 rcBottomView.Width() rcBottomView.Height() m_pMDC m_scRollpt.x m_scRollpt.y SRCCOPY);
}
void CBottomFormView::OnLButtonDown(UINT nFlags CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CClientDC dc(this); //创建设备描述表
CBrush D_erase(GetBkColor(dc)); //创建橡皮擦
CBrush D_Brush(m_color); //创建刷子
//CRect cwrect;
//bool IsInRct = false;
//CRect Trect; //定义橡皮筋框的矩形
//CRect Prect; //图片矩形框
//CRect AbsRect;
//int i = 0;
SetCapture();
/*画图图形的需要*/
m_ptOrigin = point;
m_ptEnd = point;
m_ptOld = point;
if (m_PolyCount == 0)
{
m_ptPolyFirst = point;
}
/*工具文本插入符的需要*/
switch (m_DrawType)
{
case TTEXTINSERT:
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 41088 2018-10-09 18:44 WTImage_V\image\1.jpg
文件 475501 2018-10-09 18:44 WTImage_V\image\2.jpg
文件 20291 2018-10-12 11:00 WTImage_V\WTImage\BottomFormView.cpp
文件 2497 2018-10-11 15:51 WTImage_V\WTImage\BottomFormView.h
文件 427 2018-09-28 09:53 WTImage_V\WTImage\ClassDiagram.cd
文件 148 2018-09-27 11:19 WTImage_V\WTImage\DrawingGraphics.cpp
文件 147 2018-09-27 11:19 WTImage_V\WTImage\DrawingGraphics.h
文件 270 2018-09-29 11:20 WTImage_V\WTImage\Graph.cpp
文件 216 2018-09-29 11:19 WTImage_V\WTImage\Graph.h
文件 41088 2018-10-09 18:44 WTImage_V\WTImage\image\1.jpg
文件 475501 2018-10-09 18:44 WTImage_V\WTImage\image\2.jpg
文件 3378 2018-10-11 17:18 WTImage_V\WTImage\MagnifyDlg.cpp
文件 657 2018-10-11 17:08 WTImage_V\WTImage\MagnifyDlg.h
文件 20334 2018-10-11 16:56 WTImage_V\WTImage\MainFrm.cpp
文件 3518 2018-10-11 15:51 WTImage_V\WTImage\MainFrm.h
文件 118 2018-09-28 10:11 WTImage_V\WTImage\MainShape.cpp
文件 351 2018-09-28 10:17 WTImage_V\WTImage\MainShape.h
文件 4745 2018-09-26 17:08 WTImage_V\WTImage\ReadMe.txt
文件 598 2018-09-29 21:35 WTImage_V\WTImage\res\bmp00001.bmp
文件 478 2018-09-29 23:41 WTImage_V\WTImage\res\bmp00002.bmp
文件 958 2018-10-08 10:58 WTImage_V\WTImage\res\bmp00003.bmp
文件 326 2018-10-11 15:21 WTImage_V\WTImage\res\cur00001.cur
文件 326 2018-10-11 15:26 WTImage_V\WTImage\res\cur00002.cur
文件 326 2018-10-11 15:41 WTImage_V\WTImage\res\cursor1.cur
文件 326 2018-10-11 15:50 WTImage_V\WTImage\res\cursor2.cur
文件 1318 2018-10-10 16:59 WTImage_V\WTImage\res\Toolbar.bmp
文件 718 2018-10-08 09:00 WTImage_V\WTImage\res\toolbar1.bmp
文件 67777 2015-09-20 17:20 WTImage_V\WTImage\res\WTImage.ico
文件 670 2018-09-26 17:08 WTImage_V\WTImage\res\WTImage.rc2
文件 4710 2015-09-20 17:20 WTImage_V\WTImage\res\WTImageDoc.ico
............此处省略33个文件信息
- 上一篇:学生管理系统C语言版
- 下一篇:十个游戏C语言源代码
相关资源
- VC mfc access ado 学生管理系统
- 龚建伟MFC串口通信
- VC++/MFC扫雷源代码
- MFC点击画圆并记录坐标
- MFCList可编辑列表控件
- 基于DWT和MFCC的说话人识别系统
- High-speed Charting Control MFC绘制图表控件
- MFC图片自由鼠标交互拖拽、鼠标滚动
- 五子棋mfc,带ai,附教程
- MFC 约瑟夫环演示程序
- MFC编写的心电采集程序
- 摄影测量 单向空间后方交会程序
- DICOM图像c++打开程序
- MFC课程设计报告-手把手教你写贪吃蛇
- 冒泡排序MFC实现
- 基于mfcc的说话人语音识别matlb
- n皇后动态可视化 简单 C++ MFC
- 一款基于MFC编写的通讯录程序
- MFC 与 HALCON混合编程
- VS2015 MFC 编写 常见的CRC校验,CRC4CRC
- MFC 打开图片 放大缩小 保存
- VC++MFC最好最全入门教程
- 五子棋,MFC,VC6.0
- VC++实现打印
- 用MFC 设计绘制各种数学图形程序 如
- 图像的K均值分类
- MFC网络数据包的捕获与分析
- Tower_Hanoi.rar
- 参考文献管理系统(PowerBuuilderMySQLM
- C++实现cs模式下文件传输
评论
共有 条评论