📄 viewwnd.h
字号:
// ViewWnd.h: interface for the CViewWnd class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_VIEWWND_H__6D4AC19C_A4B4_49AC_86D9_7594E506A7B9__INCLUDED_)
#define AFX_VIEWWND_H__6D4AC19C_A4B4_49AC_86D9_7594E506A7B9__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "Elements.h"
#include "Commands.h"
#include "SymbolLibs.h"
#include "Scn.h"
#include "Event.h"
#include "Layer.h"
#include "dcl_graph.h"
typedef CList<CLayer *,CLayer *&> LayerList;
#define entSELECT 0
#define entPAN 1//平移
#define entWIN 2//开窗
#define entZOOM 3//缩放
#define entLINE 4//画线
#define entRECT 5//画矩形
#define entPOLYGON 6//画多边形
#define entCIR 7//画圆
#define entARC 8//画圆弧
#define entELLIPSE 9//画椭圆
#define entTEXT 10//画文本
#define entSYMBOL 11//画符号
#define entRECTSELECT 12//框选
#define entLINES 13//折线
class DECL_GRAPH CViewWnd : public CObject
{
public:
CViewWnd(CWnd *pWnd);
virtual ~CViewWnd();
public:
int m_LineWidth;//线宽
long m_LineColor;//线的颜色
long m_FillColor;//填充颜色
int m_FillStyle;//填充模式
int m_LineStyle;//线型
long m_HighLightColor;//高亮颜色
long m_BackColor;//窗口背景颜色
FontStyle m_FontStyle;//字体风格
long m_ShowSelColor;
private:
CScn m_Scn;//矩阵变换对象
CCommands m_Commands;//命令集合
// CSymbolLibs m_SymLibs;//符号库集合
LayerList m_Layers;//图层集合
CElements m_Elements;//图元集合
CElements m_SelElements;//选择图元集合
CEvent *m_pEvent;//当前事件
CWnd *m_pWnd;//关连的窗口指针
BOOL m_bDoneEnable;//UNDO/REDO开关
BOOL m_bSnap;//捕捉开关
CLayer *m_pActiveLayer;
private:
void TransformDisplay(vector &MoveVec,double scale);
public:
BOOL MoveLeft(int nPanUnit);//左移
BOOL MoveRight(int nPanUnit);//右移
BOOL MoveUp(int nPanUnit);//上移
BOOL MoveDown(int nPanUnit);//下移
BOOL Zoom(int nZoomUnit);//缩放
public:
CLayer *ActiveLayer(){return m_pActiveLayer;};
void ActiveLayer(CLayer *pLayer);
CWnd *GetWindow(){return m_pWnd;};
//鼠标移动事件
virtual void OnMouseMove(UINT nFlags, CPoint point);
//鼠标左键双击事件
virtual void OnLButtonDblClk(UINT nFlags, CPoint point);
//鼠标右键双击事件
virtual void OnRButtonDblClk(UINT nFlags, CPoint point);
//鼠标左键单击按下事件
virtual void OnLButtonDown(UINT nFlags, CPoint point);
//鼠标左键单击弹上事件
virtual void OnLButtonUp(UINT nFlags, CPoint point);
//鼠标右键单击按下事件
virtual void OnRButtonDown(UINT nFlags, CPoint point);
//鼠标右键单击弹上事件
virtual void OnRButtonUp(UINT nFlags, CPoint point);
//键盘按下事件
virtual void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
//键盘弹上事件
virtual void OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags);
//绘制图元
virtual void OnDraw(CDC *pDC);
//得到图元集合
CElements *GetElements(){return &m_Elements;};
//得到命令集合
CCommands *GetCommands(){return &m_Commands;};
//得到选择图元集合
CElements *GetSelElements(){return &m_SelElements;};
//得到符号库集
// CSymbolLibs *GetSymbolLibs(){return &m_SymLibs;};
//得到变换对象
CScn *GetScn(){return &m_Scn;};
//设置激活的事件对象
void SetEvent(CEvent *pEvent);
void SetEvent(int nState);
//刷新
void Refresh();
//反悔
void Undo();
//重做
void Redo();
//设置UNDO/REDO
void SetDone(BOOL bEnable);
BOOL GetDone();
void Snap(BOOL bSnap)
{
m_bSnap=bSnap;
if(m_pEvent)
{
if(m_pEvent->Snap())
m_pEvent->SetSnap();
else
m_pEvent->KillSnap();
}
};
BOOL Snap(){return m_bSnap;};
};
#endif // !defined(AFX_VIEWWND_H__6D4AC19C_A4B4_49AC_86D9_7594E506A7B9__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -