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

📄 paintlazys.h

📁 这是书上的代码
💻 H
字号:
// PaintLazys.h: interface for the CPaintLazys class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_PAINTLAZYS_H__2ACCA0C2_CC5F_11D4_A4DD_00D0B7213322__INCLUDED_)
#define AFX_PAINTLAZYS_H__2ACCA0C2_CC5F_11D4_A4DD_00D0B7213322__INCLUDED_

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

#include "PAINTED.H"

class CPaintLazys : public CPainted  
{
public:
	CPaintLazys();
	virtual ~CPaintLazys();
	virtual void Init(CPath* pPath);
	//返回路段给定端点的姿态角(外射角)
	virtual double ReturnPostureAngle(UINT id);
	virtual void GetPostureAngle();//计算得到路段的姿态角(外射角)
	//就近点判断函数,pnt1为鼠标点坐标,id为返回点的ID,pnt为返回点的坐标,angle为返回点的姿态角
	//此函数只用于得到路径的起点!!
	//返回值为TRUE表示有就近点,FALSE表示无就近点
	virtual BOOL NearJudge1(CPnt pnt1,UINT& id,CPnt& pnt,double& angle);
	//就近点判断函数,	
	//pnt1为鼠标点坐标或计算得到的准终点坐标,
	//id为返回点的ID,pnt为返回点的坐标,angle为返回点的姿态角
	//此函数只用于得到路径的终点!!
	//返回值为TRUE表示有就近点,FALSE表示无就近点
	virtual BOOL NearJudge2(CPnt pnt1,UINT& id,CPnt& pnt,double& angle);
	char * toData(char *p_Char);
	void toChar(char *p_Char);
	CPnt returnattr1();//return attribute
	CPnt returnattr2();//return attribute
	void ChangeOrigin(CPnt pnt);//改变坐标原点

	void Transform(CPnt pnt,CPnt& point);
	void Transform1(CPnt pnt,CPnt& point);
	double calculate(double fX,double m_fXe,double m_fYe);
	
  	void Draw(CDC* pCDC);
	void DrawSpecialNode(CDC* pCDC);//显示断点非相切点
	void DragDraw(CDC* pDC, CPnt& pointDragged);
	void Move(double x_Move,double y_Move);
	void MoveDraw(CDC* pCDC, CPnt& p1,CPnt& p2);//移动画线或图形
	void DrawSelected(CDC* pDC, void* pTemp);
	void DrawErase1(CDC* pCDC, void* pTemp);//擦除图形
	void DrawErase(CDC* pCDC, void* pTemp);//擦除图形
	void onup1(CPnt& point1,CPnt& point2,CPnt& point3,CWnd*pWnd);
	void OnDown(CPnt& pointDown);
	void OnDown2(CPnt& pointDown);
	void OnUp(CPnt& pointUp, CWnd* pWnd);
	BOOL IsHit(CPnt& pointBang);
	UINT IsHit1(CPnt& pointBang);//端点是否被选中
	virtual void IsDblClk(void* pTemp1,void* pTemp2);//被双击选中
  	void Serialize(CArchive& ar);
	void GetBoundingRect(double &minx,double &miny,double &maxx,double &maxy);

	//得到路径的绘制起点
	virtual int GetPathStartnode(CPnt& pnt1, CPnt& pnt2);
	//得到路径的绘制起点
	//pnt1 为传递的鼠标点坐标或给定的起点坐标,
	//id为返回点的ID,
	//pnt为返回点的坐标,angle为返回点的姿态角
	//return FALSE表示无就近点
	//return TRUE表示有就近点
	virtual BOOL GetPathStartnode1(CPnt& pnt1,UINT& id,CPnt& pnt,double& angle);
	//得到路径的绘制终点
	virtual BOOL GetPathEndnode(CPnt& pnt1);
	//得到路径的绘制终点
	virtual BOOL GetPathEndnode1(CPnt& pnt1);

public:
	void IsDblClkDevice(void* pTemp1,void* pTemp2);
	void IsDblClkBuilding(void* pTemp1,void* pTemp2);
	void IsDblClkPath(void* pTemp1,void* pTemp2);
	CPaintobjDoc* m_pDoc;
protected:
	DECLARE_SERIAL(CPaintLazys)
	CPnt m_pointEnd;//终点坐标
	double m_angStart;   // 起点的倾斜角(世界坐标系中)
};

#endif // !defined(AFX_PAINTLAZYS_H__2ACCA0C2_CC5F_11D4_A4DD_00D0B7213322__INCLUDED_)

⌨️ 快捷键说明

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