QSelObjManager.h
资源名称:QGIS.rar [点击查看]
上传用户:oybseng
上传日期:2015-04-27
资源大小:7831k
文件大小:3k
源码类别:
GDI/图象编程
开发平台:
Visual C++
- // QSelObjManager.h: interface for the CQSelObjManager class.
- //
- //////////////////////////////////////////////////////////////////////
- #if !defined(AFX_QSELOBJMANAGER_H__43EEE075_39EE_45D4_937B_7765DD35CDC9__INCLUDED_)
- #define AFX_QSELOBJMANAGER_H__43EEE075_39EE_45D4_937B_7765DD35CDC9__INCLUDED_
- #if _MSC_VER > 1000
- #pragma once
- #endif // _MSC_VER > 1000
- class CQBaseObj;
- class CQCoordSys;
- class CBoundaryRect;
- //////////////////////////////////////////
- ///***************CQGIS****************///
- ///类 名:CQSelObjManager
- ///基 型:CObList
- ///说 明:用于管理选中的图元对象
- ///***************CQGIS****************///
- //////////////////////////////////////////
- class AFX_EXT_CLASS CQSelObjManager : public CObList // 派生字自对象列表
- {
- public:
- static CQSelObjManager * Create(); //创建选中对象管理器对象
- static void Release(CQSelObjManager * p);//释放选中对象管理器对象
- public:
- void AddSelObj(CQBaseObj * pObj); //添加图元到选中对象管理器
- void RemoveSelObj(CQBaseObj * pObj); //除去指定的对象
- inline int GetSelObjCount(); //获得选中的图元对象个数
- void RemoveAllSelObj(); //将列表清空
- void DisplaySelObjs(CQCoordSys * pSys,CDC * pDC); //显示图元选中列表中的图元对象
- void ResetSelObj(CQBaseObj * pObj); //重置指定的图元对象
- void SetCurSelObj(CQBaseObj * pObj); //设置当前的选中对象
- CQBaseObj * GetCurSelObj(); //获取当前的选中对象
- int FindSelObjIndex(CQBaseObj * pObj); //获取选中对象的索引
- //以下三个函数用于闪烁显示选中的图元对象
- //UINT uTime千分之一秒为单位
- //创建一个TIMER,
- //CWnd *pWnd为创建TIMER的窗口指针
- //UINT_PTR uEventID为事件ID
- //UINT uTime为TIMER的时间间隔
- void BeginFlash(CWnd *pWnd,UINT_PTR uEventID,UINT uTime);
- //使选中的对象按照UINT uTime为TIMER的时间间隔闪烁显示选中的图元
- void FlashObj(CQCoordSys *pCoorSys,CWnd *pWnd);
- //结束图元的闪烁显示,删除选中对象
- void EndFlash(CWnd * pWnd,UINT_PTR uEventID);
- // 停止图元的闪烁显示,不删除选中对象
- void StopFlash(CWnd * pWnd,UINT_PTR uEventID);
- void BeginFlash(HWND pWnd,UINT_PTR uEventID,UINT uTime);
- //使选中的对象按照UINT uTime为TIMER的时间间隔闪烁显示选中的图元
- void FlashObj(CQCoordSys *pCoorSys,HWND pWnd);
- //结束图元的闪烁显示
- void EndFlash(HWND pWnd,UINT_PTR uEventID);
- void GetFlashColor(COLORREF cr[2]);
- COLORREF GetFlashColor(int nFlashColorIndex);
- COLORREF GetFlashColor();
- void SetFlashColor(COLORREF crArr[2]);
- inline POSITION GetHeadPosition();
- inline CQBaseObj * GetNext(POSITION & pos);
- inline CQBaseObj * GetHead() ;
- inline CQBaseObj * GetTail() ;
- inline POSITION FindIndex(int lIndex);
- inline CQBaseObj * GetAt(POSITION & pos);
- inline void RemoveAt(POSITION & pos);
- inline int GetCount() const ;
- inline void Copy(CObList * pList);
- void GetBoundingRect(CBoundaryRect & bRect);
- void GetScreenRect(CQCoordSys *pCoorSys,CRect &rect);
- CQSelObjManager();
- virtual ~CQSelObjManager();
- protected:
- int m_nSelPointNum; // 选中的点数
- int m_nSelLineNum; // 选中的线条数
- int m_nSelLabelNum;
- CQBaseObj * m_pCurObj; // 选中的当前对象
- COLORREF m_crFlashColor[2]; // 图元闪烁的颜色
- int m_nFlashColorIndex; // 图元闪烁的颜色索引
- };
- #endif // !defined(AFX_QSELOBJMANAGER_H__43EEE075_39EE_45D4_937B_7765DD35CDC9__INCLUDED_)