123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402 |
- ///************************************************************************/
- /* Copyright (C), 2016-2020, [Home], 保留所有权利;
- /* 模 块 名:;
- /* 描 述:;
- /*
- /* 版 本:[V];
- /* 作 者:[Home];
- /* 日 期:[10/26/2016];
- /*
- /*
- /* 注 意:;
- /*
- /* 修改记录:[Home];
- /* 修改日期:;
- /* 修改版本:;
- /* 修改内容:;
- /************************************************************************/
- #ifndef __DRAWOBJ_HEADER__
- #define __DRAWOBJ_HEADER__
- #if _MSC_VER > 1000
- #pragma once
- #endif // _MSC_VER > 1000
- #include "resource.h"
- //#include "Picture.h"
- #include "ImageEx.h"
- #include "shockwaveflash.h"
- class CGraph;
- struct LAYOUTSTRUCT
- {
- CRect rect; // m_rect (Normalized);
- // left点;
- int nX1; // m_rect.left (Normalized);
- // right点;
- int nX2; // m_rect.right (Normalized);
- // top点;
- int nY1; // m_rect.top (Normalized);
- // bottom点;
- int nY2; // m_rect.bottom(Normalized);
- // width宽;
- int nXX; // m_rect.Width();
- // height高;
- int nYY; // m_rect.Height();
- // left + width/2;
- int nX0; // 中心点X坐标;
- // top + heigth/2;
- int nY0; // 中心点Y坐标;
- BOOL bHoriz; // 方向标志;
- BOOL bXInvert; // X方向反转标志;
- BOOL bYInvert; // Y方向反转标志;
- int nMinSize; // 可画的最小尺寸;
- };
- // 定义操作
- //---------------------------------------------- CAction -----------
- class CAction:public CObject
- {
- public:
- // 0=鼠标按下;1=鼠标松开;2=鼠标移动;3=链接操作;4=退出操作;
- int m_nActionType;
- // 触发操作的表达式;
- CString m_strVariant;
- // 触发操作的条件值;
- CString m_strActionValue;
- // 图片路径(用图片来具体化);
- CString m_strPicPath;
- DECLARE_SERIAL(CAction);
- CAction();
- virtual CAction* Clone(void);
- virtual void Serialize(CArchive& ar);
- CAction& operator=(CAction& action);
- };
- /************************************************************************/
- /* Copyright (C), 2016-2020, [IT], 保留所有权利;
- /* 模 块 名:CDrawObj类, 图元基类;
- /* 描 述:所有图元的基类;
- /*
- /* 版 本:[V];
- /* 作 者:[IT];
- /* 日 期:[5/11/2016];
- /*
- /*
- /* 注 意:;
- /*
- /* 修改记录:[IT];
- /* 修改日期:;
- /* 修改版本:;
- /* 修改内容:;
- /************************************************************************/
- class CDrawObj:public CObject
- {
- public:
- DECLARE_SERIAL(CDrawObj);
- CDrawObj();
- public:
- CView* m_pView;
- // 图元大小;
- CRect m_rect;
- public:
- // 图元名称集合;
- static CStringArray drawsName;
- // 图元运行时对象集合;
- static CPtrArray drawsRuntimeClass;
- static void RegisterClass(CString strName,CRuntimeClass* pRuntimeClass);
- public:
- COLORREF m_clrFore; // 前景色;
- COLORREF m_clrLine; // 线条色;
- COLORREF m_clrBack; // 背景色;
- COLORREF m_clrFill; // 填充色;
- LOGFONT m_logfont; // 字体;
- CString m_strLineType; // 线型;
- int m_nLineWidth; // 线宽;
- CString m_strCaption; // 内联的文本(如果m_bVariant==TRUE,则为变量名);
- BOOL m_bVariant; // 是否是变量;
- BOOL m_bDynShow; // 是否动态显示;
- CString m_strDynShow; // 动态显示条件;
- BOOL m_bLocked; // 是否锁定不移动;
- BOOL m_bAligned; // 用来等距排列的标志位
- // 动态参数;
- COLORREF m_clrDynFore; // 动态前景色;
- CString m_strDynForeCon; // 动态前景内容;
- COLORREF m_clrDynBack; // 动态背景色;
- CString m_strDynBackCon; // 动态背景内容;
- COLORREF m_clrDynLine; // 线条动态色;
- CString m_strDynLineCon; // 线条动态内容;
- BOOL m_bDynFore; // 是否动态前景;
- BOOL m_bDynBack; // 是否动态背景;
- BOOL m_bDynLine; // 是否动态线条;
- int m_nFillMode; // 是否填充模式;
- CString m_strHoriPos; // 水平位置;
- CString m_strHoriSize; // 水平大小;
- CString m_strVertiPos; // 垂直位置;
- CString m_strVertiSize; // 垂直大小;
- BOOL m_bVertiSize; // 是否垂直大小;
- BOOL m_bVertiPos; // 是否垂直位置;
- BOOL m_bHorizSize; // 是否水平大小;注意: 为真时 报警背景闪烁;
- BOOL m_bHorizPos; // 是否水平位置;
- int m_nHorAlign;
- int m_nVerAlign;
- // 动态值;
- CRect m_rctCurrent; // 当图元内联变量后,动态显示的区域大小;
- COLORREF m_clrCurrentFore;
- COLORREF m_clrCurrentBack;
- COLORREF m_clrCurrentLine;
- CString m_strCurrentCaption; // 当前显示的文本(外在显示,与m_strCaption不同);
- BOOL m_bShow; // 是否可见;
- float m_fCurrentValue;
- BOOL m_bShowtemp;//chn add 为了GIF,flasg,OCX的隐藏和显示
- // 动作属性;
- CAction m_downAction;
- CAction m_upAction;
- CAction m_moveAction;
- BOOL m_bOnButtonUp;
- BOOL m_bOnButtonDown;
- BOOL m_bOnMove;//注意: 为真时 可以选择,但不能复制和移动
- //
- BOOL m_bHisFreshed;
- // 组合内动态缩放;
- double m_dbLeftRate;
- double m_dbRightRate;
- double m_dbTopRate;
- double m_dbBottomRate;
- public:
- static BOOL bRuning; // 是否处于运行状态;
- BOOL m_bModifyMore; // 是否是编辑多个;
- public:
- CDrawObj& operator=(CDrawObj& drawObj);
- virtual CDrawObj* Clone(void);
- virtual void Serialize(CArchive& ar);
- virtual BOOL OnAttrib(void);
- virtual BOOL OnAttrib(CPropertySheet& sheet);
- virtual void Draw(CDC* pDC);
- void DrawText(CDC* pDC);
- virtual bool Fresh(OUT CRect &RECT );
- void DrawHKedu(CDC* pDC, CRect rect, int nKedu, COLORREF clrKedu);
- void DrawVKedu(CDC* pDC, CRect rect, int nKedu, COLORREF clrKedu);
- void DrawArcKedu(CDC* pDC, CRect rect, int nStartAngle, int nEndAngle, int nKedu, COLORREF clrKedu);
- public:
- LOGBRUSH GetBrush();
- // 画框架;
- void DrawFrame(CDC* pDC);
- void ProcessAction(int type);
- // 获取Pen类型;
- int GetPenStyle(CString penType);
- // 布局;
- void Layout(BYTE Sharp,LAYOUTSTRUCT* pLayout);
- // 获取手势数量;
- virtual int GetHandleCount(void);
- // 获取手势所在点位置;
- virtual CPoint GetHandle(int nHandle);
- // 获取手势区域;
- CRect GetHandleRect(int nHandle);
- // 获取手势图标;
- virtual HCURSOR GetHandleCursor();
- // 移动到指定区域;
- virtual void MoveTo(CRect rect);
- // 移动手势到指定点;
- virtual void MoveHandleTo(int nHandle, CPoint point);
- // 画跟踪器;
- virtual void DrawTracker(CDC* pDC);
- // 单击;
- virtual int HitTest(CPoint point);
- // 是否相交;
- virtual BOOL Intersects(CRect rect);
- // 刷新;
- virtual void Invalidate(void);
- private:
- bool m_bFlag1,m_bFlag2,m_bFlag3;
- };
- typedef CTypedPtrList<CObList, CDrawObj*> CDrawObjList;
- //---------------------------------------------- CDrawTLine -------
- class CDrawTLine:public CDrawObj
- {
- public:
- DECLARE_SERIAL(CDrawTLine);
- CDrawTLine();
- public:
- virtual CDrawObj* Clone(void);
- virtual void Draw(CDC* pDC);
- //virtual bool Fresh( CRect &RECT );
- };
- //---------------------------------------------- CDrawLine -------
- class CDrawLine:public CDrawObj
- {
- public:
- DECLARE_SERIAL(CDrawLine);
- CDrawLine();
- public:
- virtual CDrawObj* Clone(void);
- virtual void Draw(CDC* pDC);
- //virtual bool Fresh( CRect &RECT );
- };
- //---------------------------------------------- CDrawText --------
- class CDrawText:public CDrawObj
- {
- public:
- DECLARE_SERIAL(CDrawText);
- CDrawText();
- public:
- virtual CDrawObj* Clone(void);
- virtual void Draw(CDC* pDC);
- virtual void DrawText(CDC* pDC);
- virtual bool Fresh( CRect &RECT );
- };
- //---------------------------------------------- CDrawRect --------
- class CDrawRect:public CDrawObj
- {
- public:
- DECLARE_SERIAL(CDrawRect);
- CDrawRect();
- public:
- virtual CDrawObj* Clone(void);
- virtual void Draw(CDC* pDC);
- //virtual bool Fresh( CRect &RECT );
- };
- //---------------------------------------------- CDrawRoundRect --------
- class CDrawRoundRect:public CDrawObj
- {
- public:
- DECLARE_SERIAL(CDrawRoundRect);
- CDrawRoundRect();
- public:
- virtual CDrawObj* Clone(void);
- virtual void Draw(CDC* pDC);
- //virtual bool Fresh( CRect &RECT );
- };
- //---------------------------------------------- CDrawButton ------
- class CDrawButton:public CDrawObj
- {
- public:
- DECLARE_SERIAL(CDrawButton);
- CDrawButton();
- public:
- virtual CDrawObj* Clone(void);
- virtual void Draw(CDC* pDC);
- };
- //---------------------------------------------- CDrawBitmap ------
- class CDrawBitmap:public CDrawObj
- {
- public:
- DECLARE_SERIAL(CDrawBitmap);
- CDrawBitmap();
- ~CDrawBitmap();
- // 动态图像(gif、flash);
- CString m_strDynFile;
- // 静态图像(jpg、png);
- CString m_strStaticFile;
- // 是否拉伸;
- BOOL m_bStretch;
- // 是否动态;
- BOOL m_bDyn;
- // 显示动态图像的条件;
- CString m_strDynCondition;
- // 是否使用动态图像;
- BOOL m_bUseDnyFile;
-
- // GDI+
- ImageEx* m_image;
- CString m_sOldFilePath;
- public:
- virtual CDrawObj* Clone(void);
- virtual void Draw(CDC* pDC);
- virtual bool Fresh( CRect &RECT );
- virtual void Serialize(CArchive& ar);
- virtual BOOL OnAttrib(CPropertySheet& sheet);
- BOOL DisplayBMP(CDC* pDC,int nStartX,int nStartY,int nWidth,int nHeight,CString strBMPFile,BOOL bStretch);
- BOOL DisplayJPG(CDC* pDC,int nStartX,int nStartY,int nWidth,int nHeight,CString strJPGFile,BOOL bStretch);
- BOOL DisplayPNG(CDC* pDC,int nStartX,int nStartY,int nWidth,int nHeight,CString strPNGFile,BOOL bStretch);
- BOOL DisplayGIF(CDC* pDC,int nStartX,int nStartY,int nWidth,int nHeight,CString strGIFFile,BOOL bStretch);
- };
- //---------------------------------------------- CDrawGif ------
- class CDrawGif:public CDrawObj
- {
- public:
- DECLARE_SERIAL(CDrawGif);
- CDrawGif();
- ~CDrawGif();
- // GDI+
- ImageEx* m_image;
- CString m_strDynFile;
- CString m_strStaticFile;
- BOOL m_bStretch;
- BOOL m_bDyn;
- CString m_strDynCondition;
- BOOL m_bUseDnyFile;
- //CPicture m_Picture;
- public:
- virtual CDrawObj* Clone(void);
- virtual void Draw(CDC* pDC);
- virtual bool Fresh( CRect &RECT );
- virtual void Serialize(CArchive& ar);
- virtual BOOL OnAttrib(CPropertySheet& sheet);
- };
- //---------------------------------------------- CDrawTransfer ------
- class CDrawTransfer:public CDrawObj
- {
- public:
- DECLARE_SERIAL(CDrawTransfer);
- CDrawTransfer();
- public:
- virtual CDrawObj* Clone(void);
- virtual void Draw(CDC* pDC);
- void DrawCircle(CDC *pDC, POINT origin, int radius);
- };
- //---------------------------------------------- CDrawFlash --------
- class CDrawFlash:public CDrawObj
- {
- public:
- DECLARE_SERIAL(CDrawFlash);
- CDrawFlash();
- ~CDrawFlash();
- CShockwaveFlash *m_pCtrlFlash;
- CString m_strFlashPath;
- bool m_bFlashCreate;
- public:
- virtual CDrawObj* Clone(void);
- virtual void Draw(CDC* pDC);
- virtual void DrawText(CDC* pDC);
- virtual void Serialize(CArchive& ar);
- virtual BOOL OnAttrib(CPropertySheet& sheet);
- virtual bool Fresh( CRect &RECT );
- };
- #endif // !defined(AFX_CDRAWOBJ_H__4539C1EB_10FD_40B5_9BBC_22C008CEAF0F__INCLUDED_)
|