www.pudn.com > Visual C++课程设计案例精编--画图1 .rar > GraphRecord.h


//GraphRecord.h 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
 
#define NONE		0 
#define LINE		1 
#define RECTANGLE	2 
#define TRIANGLE	3 
#define ELLIPSE		4 
#define FILL		5 
#define SELECT		6 
#define TEXT        7 
#define UNDO        8 
#define REDO        9 
#define MOVE		10 
#define COPY		11 
#define CUT			12 
#define PASTE		13 
 
#define SOLIDBRUSH	0x100 
 
struct PENTYPE 
{ 
	int iWidth; 
	int iStyle; 
	COLORREF Color; 
}; 
 
struct BRUSHTYPE 
{ 
	int iStyle; 
	COLORREF Color; 
}; 
 
 
struct LINENODE 
{ 
	BYTE bType;// 绘图单元的类型 
// 该记录的状态:bDo>0 显示;bD0<=0 不显示 
//	-3-粘贴,-6-剪切,0-不显示,1-显示,2-被选择,3-粘贴,5-移动,6-剪切,7-移动被恢复 
	int bDo; 
	int Index;//图元索引 
	PENTYPE pen;//绘制直线所用的画笔类型 
	POINT Start;//直线的起点 
	POINT End;//直线的终点 
	LINENODE()//直线图元的初始化函数 
	{ 
		bType=LINE; 
		bDo=1; 
	}; 
}; 
 
//	矩形 
struct RECTANGLENODE 
{ 
	BYTE bType;//图元类型 
// 该记录的状态:bDo>0 显示;bD0<=0 不显示 
//	-3-粘贴,-6-剪切,0-不显示,1-显示,2-被选择,3-粘贴,5-移动,6-剪切,7-移动被恢复 
	int bDo; 
	int Index;//图元索引 
	RECT rT;//矩形数据 
	PENTYPE pen;//绘制矩形所用的画笔类型 
	RECTANGLENODE()//矩形图元的初始化函数 
	{ 
		bType=RECTANGLE; 
		bDo=TRUE; 
	}; 
 
}; 
 
// 椭圆 
struct ELLIPSENODE 
{ 
	BYTE bType;//图元类型 
// 该记录的状态:bDo>0 显示;bD0<=0 不显示 
//	-3-粘贴,-6-剪切,0-不显示,1-显示,2-被选择,3-粘贴,5-移动,6-剪切,7-移动被恢复 
	int bDo; 
	int Index;//图元索引 
	RECT rT;//椭圆外接矩形 
	PENTYPE pen;//绘制椭圆所用的画笔 
	ELLIPSENODE()//椭圆图元的初始化函数 
	{ 
		bType=ELLIPSE; 
		bDo=TRUE; 
	}; 
 
}; 
 
// 三角形 
struct TRIANGLENODE 
{ 
	BYTE bType;//图元类型 
// 该记录的状态:bDo>0 显示;bD0<=0 不显示 
//	-3-粘贴,-6-剪切,0-不显示,1-显示,2-被选择,3-粘贴,5-移动,6-剪切,7-移动被恢复 
	int bDo; 
	int Index;//图元索引 
    RECT rT;//三角形外接矩形 
	PENTYPE pen;//绘制三角形的画笔类型 
	TRIANGLENODE()//三角形图元记录的初始化函数 
	{ 
		bType=TRIANGLE; 
		bDo=TRUE; 
	}; 
 
}; 
 
// 填充 
struct FILLNODE 
{ 
	BYTE bType;//图元类型 
// 该记录的状态:bDo>0 显示;bD0<=0 不显示 
//	-3-粘贴,-6-剪切,0-不显示,1-显示,2-被选择,3-粘贴,5-移动,6-剪切,7-移动被恢复 
	BOOL bDo; 
	POINT Seed;//填充的种子点 
	COLORREF BoundColor;//填充覆盖的颜色范围 
	BRUSHTYPE brush;//填充所用画笔 
	FILLNODE()//填充图元的初始化函数 
	{ 
		bType=FILL; 
		bDo=TRUE;	 
	}; 
}; 
 
//粘贴 
struct PASTENODE 
{ 
	BYTE bType;//记录类型 
	BOOL bDo;//粘贴操作是否应显示 
	int iCompNum;//粘贴集中的图元数目 
	int Index[10];//粘贴集中图元索引数组 
	PASTENODE()//粘贴记录的初始化函数 
	{ 
		bType=PASTE; 
		bDo=TRUE;	 
	}; 
}; 
 
//剪切 
struct CUTNODE 
{ 
	BYTE bType;//记录类型 
	BOOL bDo;//剪切操作是否应显示 
	int iCompNum;//剪切集中的图元数目 
	int Index[10];//剪切集中图元索引数组 
	CUTNODE()//剪切记录的初始化函数 
	{ 
		bType=CUT; 
		bDo=TRUE;	 
	}; 
}; 
 
//移动 
struct MOVENODE 
{ 
	BYTE bType;//记录类型 
	BOOL bDo;//移动操作是否应显示 
	int iCompNum;//移动集中的图元数 
	int Index[10];//移动集中图元索引数组 
	int x_off;//x坐标移动的距离 
	int y_off;//y坐标移动的距离 
	MOVENODE()//移动记录的初始化函数 
	{ 
		bType=MOVE; 
		bDo=TRUE;	 
	}; 
}; 
 
//文本记录 
struct TEXTNODE 
{ 
	BYTE bType;//记录类型 
// 该记录的状态:bDo>0 显示;bD0<=0 不显示 
//	-3-粘贴,-6-剪切,0-不显示,1-显示,2-被选择,3-粘贴,5-移动,6-剪切,7-移动被恢复 
	int bDo; 
	int Index;//索引 
	POINT point;//文本的左上点 
	CString str;//文本的内容 
	COLORREF color;//文本的颜色 
	TEXTNODE()//文本图元的初始化函数 
	{ 
		bType=TEXT; 
		bDo=1; 
	}; 
};