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

📄 snap.h

📁 股票控件源代码
💻 H
字号:
// Snap.h: interface for the CSnap class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_SNAP_H__723A8F92_B4BD_42EE_B39E_3E59264FCBC3__INCLUDED_)
#define AFX_SNAP_H__723A8F92_B4BD_42EE_B39E_3E59264FCBC3__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "Relation.h"
#include "NodeList.h"
//#include "RelationList.h"
#include "Queue.h"
#include "Base\as_position.hxx"
class CEvent;
class CSnap : public CObject  
{
public:
	CSnap(CEvent *pEvent);
	virtual ~CSnap();
private:
	
	BOOL m_bStartSnap,m_bStopSnap;//开始捕捉、停止捕捉标志
	CNodeList *m_CurRelations,*m_OldRelations;
	BOOL m_bClearQueue,m_bClearRelations;//清除几何元素队列,关系链标志
	CQueue *m_pSelElements;
    BOOL GetPositionFun1(CRelation *rela1,CRelation *rela2,position &pe);
	BOOL GetPositionFun2(CRelation *rela1,CRelation *rela2,position &pe);
	BOOL GetPositionFun3(CRelation *rela1,CRelation *rela2,position &pe);
    BOOL GetPositionFun4(CRelation *rela1,CRelation *rela2,position &pe);
    
public:
	//将当前所选择到的几何元素入队
	void SelectElement(position &pos);
	CEvent *GetEvent(){return m_pEvent;};
	void ClearQueue(BOOL bFlag);
    BOOL ClearQueue();
	void ClearRelations(BOOL bFlag);
	BOOL ClearRelations();
	void StartSnap(BOOL bFlag){m_bStartSnap=bFlag;};
	BOOL StartSnap(){return m_bStartSnap;};
	void StopSnap(BOOL bFlag){m_bStopSnap=bFlag;};
	BOOL StopSnap(){return m_bStopSnap;};
	//开始捕捉
	void BeginSnap(CPoint point,position &pos);
	//结束捕捉
	void EndSnap(position &pos);
    void Highlight(BOOL bFlag);//高亮关系链
	//得到最终的几何点位置
    virtual position GetPosition();
	CNodeList *GetRelationList(){return m_CurRelations;};
	CQueue  *GetSelElements(){return m_pSelElements;};
public:
	//CEvent对象的鼠标移动事件中调用该函数,进行捕捉工作
	virtual void OnMouseMove(int nFlags,CPoint point);
	//CEvent对象的鼠标单击事件中调用该函数,添加捕捉图元
	virtual void OnLButtonDown(int nFlags,CPoint point);
    //捕捉函数,在OnMouseMove函数中调用
	virtual void OnSnap(CPoint point);
protected:
	CEvent *m_pEvent;
	
	//得到最终的几何点位置
	virtual BOOL GetPosition(position &pos);
	BOOL ValidaRelation(CRelation *Rela);
	//以下为线形的捕捉函数
	//在下列函数中创建关系,并把关系加入到关系链表中
	BOOL SnapEnd(position &pick);//捕捉几何边端点、孤立点
	BOOL SnapMiddle(position &pick);//中点
	BOOL SnapAngle(position &pick);//角分线
	BOOL SnapCenter(position &pick);//中心点
    BOOL SnapIntersect(position &pick);//交点
	BOOL SnapOnLine(position &pick);//点在线上
    BOOL SnapPhv(position &pick);//水平
	BOOL SnapPvh(position &pick);//竖直
	BOOL SnapExtline(position &pick);//延长线
};

#endif // !defined(AFX_SNAP_H__723A8F92_B4BD_42EE_B39E_3E59264FCBC3__INCLUDED_)

⌨️ 快捷键说明

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