资源简介

在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个文件信息

评论

共有 条评论