⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 paintor.h

📁 C语言库函数(包括所有的C语言库函数)
💻 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 + -