/* ==========================================================================
Class : CDiagramEditor
Author : Johan Rosengren, Abstrakt Mekanik AB
Date : 2004-03-29
Purpose : "CDiagramEditor" encapsulates a basic vector editor geared
towards diagrams rather than graphics. It supports
virtual screens both smaller and larger than the window,
snap to grid, copy/paste, unlimited undo, zoom etc. It
can be added to both dialogbox- and doc/view apps due to
the use of a separate container for data.
Normally, this class need only to be inherited from when
the drawing functionality is insufficient - many of the
settings can be modified through member accessors.
Description : The class derives from "CWnd", and handles Windows messages
relevant to the operations.
Usage :
========================================================================
Changes : 8/4 2004 SendMessageToObjects sets TRUE flag
sending message only to selected objects.
9/4 2004 Made some message mapping functions
virtual to allow enhancements in
derived classes.
9/4 2004 Added accessors for states to allow
access for derived classes
28/4 2004 Set interact mode to MODE_NONE after
ctrl+clicking item (to not move lines)
28/4 2004 Setting scrollbar positions to zero
in Clear
29/4 2004 Sending this window as a parent to the
property dialog. This is to be able to
redraw the editor properly after changes
to the dialog.
30/4 2004 Changed c-style casts to static_cast
30/4 2004 Remove ShowProperties-const-ness.
========================================================================
14/5 2004 Added access to m_subMode in
SetInteractMode
14/5 2004 Made OnObjectCommand virtual to allow
interception in derived classes.
15/5 2004 Made GetBackgroundColor const.
20/5 2004 Made SelectAll virtual.
24/5 2004 Added virtual size check against the client
rect in HScroll and VScroll (Graham).
========================================================================
24/6 2004 Corrected bug in SetZoom, where the minimum
zoom value was not honoured (pgrohs).
24/6 2004 Zeroing m_internalData after delete to
avoid crash. (pgrohs).
26/6 2004 Added group handling (Unruled Boy).
========================================================================
26/6 2004 Corrected bug in alignment handling - all
objects, not only selected, where modified.
Also made functions virtual.
29/6 2004 Added ZoomToFitScreen and
mousewheel-handling (John A. Johnson).
30/6 2004 Added panning (John A. Johnson).
3/7 2004 Made AddObject virtual and added the virtual
MoveObject function. This is to allow
trapping of added or moved objects in the
editor in derived classes. Also made
clipboard-functions and DeleteAllSelected
virtual.
5/7 2004 Made Clear virtual.
5/7 2004 Added virtual GetCursor function.
6/7 2004 Correction in VirtualToScreen, not deducting
scrollbar positions any longer (Wolfgang Busch).
6/7 2004 Coordinate conversion functions made public.
(Wolfgang Busch).
========================================================================
12/7 2004 Added scroll wheel mode. By calling
SetScrollWheelMode( WHEEL_SCROLL/WHEEL_ZOOM),
the scroll wheel will either scroll or zoom.
========================================================================
16/7 2004 Added virtual to more message handlers,
among them the scrollbar ones.
16/7 2004 Added virtual to SetZoom.
16/7 2004 Added virtual functions to set the
scrollbar positions to get one single point
where this is made.
25/7 2004 Checking if the cursor is outside of
restraint when placing an item in
OnLButtonDown.
========================================================================
3/8 2004 Added ScrollIntoView commands
4/8 2004 Fixed bug with selection markers -
virtualization of the mouse coordinates was
in discord with the selection marker
rectangles. (Marc G)
========================================================================
9/8 2004 Added new ScrollIntoView command taking
object as an inparam.
19/8 2004 Fixed bug in hit testing objects when
zooming in OnLButtonDown (Marc G)
========================================================================
28/8 2004 Added check for non-normalized rect when
hit-testing in OnLButtonDown, as lines
have them.
========================================================================*/
#include "stdafx.h"
#include "DiagramEditor.h"
#include <math.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#pragma warning( disable : 4706 )
/////////////////////////////////////////////////////////////////////////////
// CDiagramEditor construction/destruction/initialization
CDiagramEditor::CDiagramEditor()
/* ============================================================
Function : CDiagramEditor::CDiagramEditor
Description : Constructor
Access : Public
Return : void
Parameters : none
Usage :
============================================================*/
{
m_bkgndCol = ::GetSysColor( COLOR_WINDOW );
m_nonClientBkgndCol = ::GetSysColor( COLOR_3DSHADOW );
m_gridCol = RGB( 192, 192, 192 );
m_grid = TRUE;
m_gridStyle = PS_SOLID;
m_gridSize = CSize( 8, 8 );
m_snap = FALSE;
m_bgResize = FALSE;
m_bgResizeZone = 10;
m_bgResizeSelected = FALSE;
m_markerSize = CSize( 8, 8 );
m_drawObj = NULL;
m_objs = NULL;
m_multiSelObj = NULL;
m_internalData = NULL;
m_restraint = RESTRAINT_NONE;
m_leftMargin = 8;
m_topMargin = 8;
m_rightMargin = 8;
m_bottomMargin = 16;
m_margin = FALSE;
m_marginColor = RGB( 128, 128, 255 );
m_popupMenu = NULL;
m_multiDraw = FALSE;
m_zoomFactor = 0.01;
m_zoomMax = 10.0;
m_zoomMin = 0.0;
m_panningTimer = 100;
m_panning = FALSE;
m_keyInterface = KEY_ALL;
m_cursorNorth = ::LoadCursor( NULL, IDC_SIZENS );
m_cursorNorthEast = ::LoadCursor( NULL, IDC_SIZENESW );
m_cursorEast = ::LoadCursor( NULL, IDC_SIZEWE );
m_cursorSouthEast = ::LoadCursor( NULL, IDC_SIZENWSE );
m_cursorSouth = ::LoadCursor( NULL, IDC_SIZENS );
m_cursorSouthWest = ::LoadCursor( NULL, IDC_SIZENESW );
m_cursorWest = ::LoadCursor( NULL, IDC_SIZEWE );
m_cursorNorthWest = ::LoadCursor( NULL, IDC_SIZENWSE );
SetScrollWheelMode( WHEEL_SCROLL );
Clear();
}
CDiagramEditor::~CDiagramEditor()
/* ============================================================
Function : CDiagramEditor::~CDiagramEditor
Description : Destructor
Access : Public
Return : void
Parameters : none
Usage :
============================================================*/
{
delete m_drawObj;
delete m_internalData;
delete m_popupMenu;
}
void CDiagramEditor::Clear()
/* ============================================================
Function : CDiagramEditor::Clear
Description : Clears internal run-time variables.
Access : Public
Return : void
Parameters : none
Usage : Call to reset internal states.
============================================================*/
{
// Clearing internal states and vars
m_selectionRect.SetRectEmpty();
m_interactMode = MODE_NONE;
m_zoom = 1.0;
m_bgResizeSelected = FALSE;
m_deltaPoint = CSize( 0, 0 );
m_multiSelObj = NULL;
m_drawing = FALSE;
SetPanning( FALSE );
delete m_drawObj;
m_drawObj = NULL;
没有合适的资源?快使用搜索试试~ 我知道了~
VC中画UML图源代码
![preview](https://csdnimg.cn/release/downloadcmsfe/public/img/white-bg.ca8570fa.png)
共110个文件
h:53个
cpp:52个
cur:3个
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
![star](https://csdnimg.cn/release/downloadcmsfe/public/img/star.98a08eaa.png)
温馨提示
经典umleditor,用于自己写VC中画UML类图的源代码,将所用的类导入即可使用,程序文件中有说明.
资源推荐
资源详情
资源评论
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![thumb](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
收起资源包目录
![package](https://csdnimg.cn/release/downloadcmsfe/public/img/package.f3fc750b.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
共 110 条
- 1
- 2
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
- wei80723362015-07-07代码可以用,但是不是自己想要的
![avatar](https://profile-avatar.csdnimg.cn/default.jpg!1)
eeijunre
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
- jQuery jPages分页工具库(jQuery Pagination Plugin)
- Spring框架学习指南
- Lan仿朋友圈系统开源源码,可用于表白墙等微商相册,商品图册等
- ASP.NET电子购物商城系统(源码)
- SLAM-V1.5.4
- Hibernate 版本 3.6.0 最终发布版(或Hibernate 3.6.0 最终版)
- 简约在线生成短网址系统源码 短链防红域名系统 带后台
- asp.netERP客户关系系统设计(源码)
- RJ45 PCB封装概述: SMD(表面贴装设备)封装 插件式封装 特定型号如R-RJ45R08P-A004等详细封装规格 以上
- 2024最新Zibll子比主题V7.7版本源码 开心版 - WordPress主题
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)