📄 paintor.h
字号:
// Paintor.h: interface for the Paintor class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_PAINTOR_H__CEE6C499_87C8_416A_A90E_CE52446B8BB1__INCLUDED_)
#define AFX_PAINTOR_H__CEE6C499_87C8_416A_A90E_CE52446B8BB1__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "PainterCollection.h"
#include "CommonFactory.h"
#include "MoveItemVisitor.h"
#include "PaintItemVisitor.h"
#include "SelectItemVisitor.h"
//=====================================================================
//
//=====================================================================
typedef enum Status
{ PS_IDLE , PS_SELECT , PS_POINT ,
PS_LINE , PS_CIRCLE , PS_RECT
}WorkStatus;
//=====================================================================
//画图器
//=====================================================================
class Paintor
{
public:
Paintor();
virtual ~Paintor();
public:
//鼠标移动;
void MouseMove ( CPoint point ,CDC* pDC );
//鼠标左键按下;
void LButtonDown( CPoint point ,CDC* pDC );
//鼠标左键弹起;
void LButtonUp ( CPoint point ,CDC* pDC );
//鼠标右键按下;
void RButtonDown( CPoint point ,CDC* pDC );
//鼠标右键抬起;
void RButtonUp ( CPoint point ,CDC* pDC );
public:
//绘制所有图形元素;
void Draw( CDC* pDC );
public:
//撤销一步;
void PreStep( CDC* pDC );
//设置绘图器工作状态;
void SetStatus( WorkStatus s ){ m_workStatus = s ; }
//取得绘图器工作状态;
WorkStatus
GetStatus(){ return m_workStatus; }
private:
//绘图器工作状态;
WorkStatus m_workStatus;
//图形元素集合;
PainterCollection m_itemCollection;
//图形元素类工厂;
CommonFactory* m_commonFactory;
//移动图元访问者;
MoveItemVisitor m_moveVisitor;
//绘制图元访问者;
PaintItemVisitor m_paintVisitor;
//选择图元访问者;
SelectItemVisitor m_selectVisitor;
private:
CPen m_newPenErase;
CPen m_newPenPaint;
CPen* m_oldPen;
//是否开始绘制图形元素;
bool m_startPaint;
//记录绘制图形过程的起始和结束位置;
CPoint m_endPoint;
CPoint m_startPoint;
//当前被选中图元;
CGraphicItem* m_pCurSelItem;
};
#endif // !defined(AFX_PAINTOR_H__CEE6C499_87C8_416A_A90E_CE52446B8BB1__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -