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

📄 painterview.h

📁 很不错的简单的矢量图形开发软件
💻 H
字号:
// PainterView.h : interface of the CPainterView class
//
/////////////////////////////////////////////////////////////////////////////

#if !defined(AFX_PAINTERVIEW_H__8316A581_527F_11D3_860D_9D4F82E55944__INCLUDED_)
#define AFX_PAINTERVIEW_H__8316A581_527F_11D3_860D_9D4F82E55944__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "IconSet.h"

class CPainterView : public CScrollView
{
protected: // create from serialization only
	CPainterView();
	DECLARE_DYNCREATE(CPainterView)

// Attributes
public:
	CPainterDoc* GetDocument();
	void         Save();//处理文件保存
	BOOL         AddIcon();//处理数据库记录添加
	CIconSet  m_pSet;
	
	void         PickComponent(/*CDC *pDC*/);//拾取图元
	BOOL         PickRectangle(RECTANGLENODE *rectanglenode);//检查点是否在矩形内
	BOOL         PickEllipse(ELLIPSENODE *ellipsenode);//检查点是否在椭圆内
	BOOL         PickLine(LINENODE *linenode);//检查点是否在直线上
	BOOL         PickTriangle(RECT rect);//检查点是否在三角形内
	BOOL         PickText(/*POINT point*/TEXTNODE *textnode);

	void         MoveCompent();//移动图元
	void         DrawTriangle(CDC *pDC,RECT rect);//画三角形
	void         UndoMove(MOVENODE *move);//重复/恢复移动
	void         UndoPaste(PASTENODE *paste);//重复/恢复粘贴
	void         UndoCut(CUTNODE *cut);//重复/恢复剪切

// Operations
public:
	int         ZoomFactor;
	BOOL        bFileSaved;//文件是否保存过
	//填充方式
	//当前画刷颜色
	COLORREF	CurColor;
    //画刷填充形式
	int			hatchIndex;

	//当前画笔颜色,类型和宽度
	COLORREF	PenCurColor;
	int			penType;
	int			penWidth;
		
	BYTE*       DrawType;//当前绘图种类
	BOOL        DrawStep;//当前绘图步骤,0-未完成,1-完成
	BOOL        bShiftDown;//当前是否按下了Shift键,主要用以判断是否多重选择

	CString     fileName;//当前文件名
	CString     path;//当前文件路径
	//输出文本
	CString     m_strText;

	POINT       PrePoint;//原先鼠标位置
	POINT       TempPoint;//暂存鼠标位置

	BOOL        m_bDel;//是否能够删除
	BOOL        m_bCopy;//是否能够拷贝
	BOOL        m_bPaste;//是否能够粘贴
	BOOL        m_bRedo;//是否能够恢复
	BOOL        m_bUndo;//是否能够撤消
	BOOL        m_IsSelected;//是否已经选择图元
	BOOL        m_bGrid;//是否绘网点
	BOOL        m_bNoTilt;//是否禁止绘制斜线

	int         OppIndex;//图元索引

	//处理编辑
	BOOL     m_bModify;//是否处于编辑状态
	BOOL     m_bIsRect;
	int      m_nModifyIndex;//当前所调整的点索引
	POINT    *m_pModifyPoint;//当前所调整的点的坐标
	POINT    *m_pModifyPoints[4];
	int      *m_nSnapIndex;
	int      m_nModifyStep;
	PENTYPE  *m_ModifyPen;
	CPtrList SnapList;//储存当前被选图元的坐标和索引的链表

	void EnterModifyMode();
	void LeaveModifyMode();
	void DrawSnapPoint(CDC *dc,int index,/*CPoint point*/POINT *pPoints);
	void DrawCurSnap();
	void DrawSnapList();
	void DrawModifyRec(CClientDC *DC);
	void RectToPoints(RECT rect,POINT *point);

protected:
	LINENODE       *linenode;       //直线图元结构
	RECTANGLENODE  *rectanglenode;  //矩形图元结构
	ELLIPSENODE    *ellipsenode;    //椭圆图元结构
	TRIANGLENODE   *trianglenode;   //三角形图元结构
	FILLNODE       *fillnode;       //填充图元结构
	TEXTNODE       *textnode;       //文本图元结构
	MOVENODE       *movenode;       //移动操作结构
	PASTENODE      *pastenode;      //粘贴操作结构
	CUTNODE        *cutnode;        //剪切操作结构
// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CPainterView)
	public:
	virtual void OnDraw(CDC* pDC);  // 处理重画
	virtual BOOL PreCreateWindow(CREATESTRUCT& cs);//创建窗口
	virtual void OnInitialUpdate();
	protected:
	virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
	virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
	virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
	//}}AFX_VIRTUAL

// Implementation
public:
	virtual ~CPainterView();
#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif

protected:

// Generated message map functions
protected:
	//{{AFX_MSG(CPainterView)
	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);//按下鼠标左键消息处理函数
	afx_msg void OnColor();//选择填充颜色按钮处理函数
	afx_msg void OnPenColor();//选择画笔颜色按钮处理函数
	afx_msg void OnSelchangeLineWidth();//选择线宽组合框消息处理函数
	afx_msg void OnSelchangeLineType();//选择线型组合框消息处理函数
	afx_msg void OnSelchangeFillPattern();//选择填充模式组合框信息处理函数
	afx_msg void OnDrawLine();//绘制直线工具栏按钮消息处理函数
	afx_msg void OnDrawRectangle();//绘制矩形工具栏按钮消息处理函数
	afx_msg void OnLButtonUp(UINT nFlags, CPoint point);//松开鼠标左键消息处理函数
	afx_msg void OnMouseMove(UINT nFlags, CPoint point);//移动鼠标消息处理函数
	afx_msg void OnDrawEllipse();//绘制椭圆工具栏按钮消息处理函数
	afx_msg void OnDrawFill();//绘制填充工具栏按钮消息处理函数
	afx_msg void OnDrawSelect();//选择工具栏按钮消息处理函数
	afx_msg void OnModifyMove();//移动工具栏按钮消息处理函数
	afx_msg void OnUpdateEditDelete(CCmdUI* pCmdUI);//删除工具栏按钮更新处理函数
	afx_msg void OnEditDelete();//删除工具栏按钮消息处理函数
	afx_msg void OnEditCopy();//拷贝工具栏按钮消息处理函数
	afx_msg void OnUpdateEditCopy(CCmdUI* pCmdUI);//拷贝工具栏按钮更新处理函数
	afx_msg void OnEditPaste();//粘贴工具栏按钮消息处理函数
	afx_msg void OnUpdateEditPaste(CCmdUI* pCmdUI);//粘贴工具栏按钮更新处理函数
	afx_msg void OnEditCut();//剪切工具栏按钮消息处理函数
	afx_msg void OnUpdateEditCut(CCmdUI* pCmdUI);//剪切工具栏按钮更新处理函数
	afx_msg void OnEditRedo();//恢复工具栏按钮消息处理函数
	afx_msg void OnUpdateEditUndo(CCmdUI* pCmdUI);//恢复工具栏按钮更新处理函数
	afx_msg void OnUpdateEditRedo(CCmdUI* pCmdUI);//撤消工具栏按钮更新处理函数
	afx_msg void OnEditUndo();//撤消工具栏按钮消息处理函数
	afx_msg void OnDrawTriangle();//绘制三角形工具栏按钮消息处理函数
	afx_msg void OnText();//绘制文本工具栏按钮消息处理函数
	afx_msg void OnDestroy();//窗口销毁消息处理
	afx_msg void OnDrawGrid();//绘制网点工具栏按钮消息处理函数
	afx_msg void OnUpdateDrawGrid(CCmdUI* pCmdUI);//绘制网点工具栏按钮更新处理函数
	afx_msg void OnUpdateDrawFill(CCmdUI* pCmdUI);//填充工具栏按钮更新处理函数
	afx_msg void OnFileSave();//文件存储消息处理函数
	afx_msg void OnFileSaveAs();//文件另存为消息处理函数
	afx_msg void OnFileOpen();//文件打开消息处理函数
	afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);//键盘按下消息处理函数
	afx_msg void OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags);//键盘松开消息处理函数
	afx_msg void OnDrawNotilt();//禁止斜线工具栏按钮消息处理函数
	afx_msg void OnUpdateDrawNotilt(CCmdUI* pCmdUI);//禁止斜线工具栏按钮更新处理函数
	afx_msg void OnEnlarge();
	afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
	afx_msg void OnEditModify();
	afx_msg void OnUpdateEditModify(CCmdUI* pCmdUI);
	afx_msg void OnUpdateDrawEllipse(CCmdUI* pCmdUI);
	afx_msg void OnUpdateDrawLine(CCmdUI* pCmdUI);
	afx_msg void OnUpdateDrawRectangle(CCmdUI* pCmdUI);
	afx_msg void OnUpdateDrawTriangle(CCmdUI* pCmdUI);
	afx_msg void OnUpdateDrawSelect(CCmdUI* pCmdUI);
	afx_msg void OnUpdateText(CCmdUI* pCmdUI);
	afx_msg void OnUpdateModifyMove(CCmdUI* pCmdUI);
	afx_msg void OnViewRatio100();
	afx_msg void OnView100();
	afx_msg void OnView200();
	afx_msg void OnView25();
	afx_msg void OnView50();
	afx_msg void OnView75();
	//}}AFX_MSG
	afx_msg void DoNothing();
	afx_msg void OnDropDown(NMHDR* pNotifyStruct, LRESULT* pResult);
	DECLARE_MESSAGE_MAP()
};

#ifndef _DEBUG  // debug version in PainterView.cpp
inline CPainterDoc* CPainterView::GetDocument()
   { return (CPainterDoc*)m_pDocument; }
#endif

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_PAINTERVIEW_H__8316A581_527F_11D3_860D_9D4F82E55944__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -