?? drawobj.h
字號:
// drawobj.h - interface for CDrawObj and derivatives
//
// This is a part of the Microsoft Foundation Classes C++ library.
// Copyright (C) 1992-1997 Microsoft Corporation
// All rights reserved.
//
// This source code is only intended as a supplement to the
// Microsoft Foundation Classes Reference and related
// electronic documentation provided with the library.
// See these sources for detailed information regarding the
// Microsoft Foundation Classes product.
#ifndef __DRAWOBJ_H__
#define __DRAWOBJ_H__
#include "DRAWTOOL.H"
class CDrawView;
class CDrawDoc;
/////////////////////////////////////////////////////////////////////////////
// CDrawObj - base class for all 'drawable objects'
class CDrawObj : public CObject
{
protected:
DECLARE_SERIAL(CDrawObj);
CDrawObj();
// Constructors
public:
CDrawObj(const CRect& position);
// CDrawObj(Shape pShape,const CRect& position);
// Attributes
CRect m_position;
CDrawDoc* m_pDocument;
BOOL m_bBrush;
DrawShape m_DShape;
CString m_sWellNO; //井號
CString m_sXCH; //層號
char m_cSubList; //以此井為主井的連通圖是否已經顯示YN
int m_PosIndex ; //剖面圖中,為了判斷兩個井是相鄰,加一個在數據中的索引號
BOOL m_bLinkPic; //TRUE 表連通圖(程序畫上的) FALSE 表其它圖形(可以是用戶手工畫上的或插入的對象) 2007-3-12
//下面兩變量用于控制連接關系的刪除
CString m_sJoinPNO; //連接的父井
CString m_sJoin2xch; //連接的父井的油層 || 剖面圖中的油層連接與用此變量 1201
virtual int GetHandleCount();
virtual CPoint GetHandle(int nHandle);
CRect GetHandleRect(int nHandleID, CDrawView* pView);
virtual HCURSOR GetHandleCursor(int nHandle);
virtual void SetLineColor(COLORREF color);
virtual void SetFillColor(COLORREF color);
// Operations
virtual void Draw(CDC* pDC);
enum TrackerState { normal, selected, active };
virtual void DrawTracker(CDC* pDC, TrackerState state);
virtual void MoveTo(const CRect& positon, CDrawView* pView = NULL);
virtual int HitTest(CPoint point, CDrawView* pView, BOOL bSelected);
virtual BOOL Intersects(const CRect& rect);
virtual void MoveHandleTo(int nHandle, CPoint point, CDrawView* pView = NULL);
virtual void OnOpen(CDrawView* pView);
virtual void OnEditProperties();
virtual CDrawObj* Clone(CDrawDoc* pDoc = NULL);
virtual void Remove();
void Invalidate();
// Implementation
public:
COLORREF GetFillColor();
virtual ~CDrawObj();
virtual void Serialize(CArchive& ar);
#ifdef _DEBUG
void AssertValid();
#endif
// implementation data
protected:
BOOL m_bPen;
LOGPEN m_logpen;
//BOOL m_bBrush;
LOGBRUSH m_logbrush;
};
// special 'list' class for this application (requires afxtempl.h)
typedef CTypedPtrList<CObList, CDrawObj*> CDrawObjList;
////////////////////////////////////////////////////////////////////////
// specialized draw objects
class CDrawRect : public CDrawObj
{
protected:
DECLARE_SERIAL(CDrawRect);
CDrawRect();
~CDrawRect();
public:
CDrawRect(const CRect& position);
// CDrawRect(Shape pShape,const CRect& position);
// Implementation
public:
int m_fontsize;
CString m_text; //存放井號
CStringArray m_ArrText; //存放 層上屬性數據
CDrawRect(DrawShape _Shape,const CRect& position,CString pWellNO,char pSubList = 'N');
//BOOL SetShape(Shape _shape);
virtual void Serialize(CArchive& ar);
virtual void Draw(CDC* pDC);
virtual int GetHandleCount();
virtual CPoint GetHandle(int nHandle);
virtual HCURSOR GetHandleCursor(int nHandle);
virtual void MoveHandleTo(int nHandle, CPoint point, CDrawView* pView = NULL);
virtual BOOL Intersects(const CRect& rect);
virtual CDrawObj* Clone(CDrawDoc* pDoc);
protected:
// int m_nTextSize;
enum Shape { rectangle, roundRectangle, ellipse, line, text,vtext, recttext,fault_line};//hjq 新加文檔類 text, recttext 2006-11
Shape m_nShape;
CPoint m_roundness; // for roundRect corners
friend class CRectTool;
};
/////////////////////////////////////////////////////////////////////////////
class CDrawPoly;
class CDrawPoly : public CDrawObj
{
protected:
DECLARE_SERIAL(CDrawPoly);
CDrawPoly();
public:
CDrawPoly(const CRect& position);
// Operations
void AddPoint(const CPoint& point, CDrawView* pView = NULL);
BOOL RecalcBounds(CDrawView* pView = NULL);
// Implementation
public:
void UpdateAt(const CPoint &point,int nHandle);
void RemoveAt(int nHandle);
CDrawPoly(DrawShape _Shape,const CRect& position,CString pWellNO="");
virtual ~CDrawPoly();
virtual void Serialize(CArchive& ar);
virtual void Draw(CDC* pDC);
virtual void MoveTo(const CRect& position, CDrawView* pView = NULL);
virtual int GetHandleCount();
virtual CPoint GetHandle(int nHandle);
virtual HCURSOR GetHandleCursor(int nHandle);
virtual void MoveHandleTo(int nHandle, CPoint point, CDrawView* pView = NULL);
virtual BOOL Intersects(const CRect& rect);
virtual CDrawObj* Clone(CDrawDoc* pDoc);
protected:
enum Shape { poly, polyFault,polylink,poly_line};//hjq 新加文檔類 poly, polyFault 2006-11
Shape m_nShape;
int m_nPoints;
int m_nAllocPoints;
CPoint* m_points;
CDrawPoly* m_pDrawObj;
friend class CPolyTool;
};
class CDrawItem; // COleClientItem derived class
class CDrawOleObj : public CDrawObj
{
protected:
DECLARE_SERIAL(CDrawOleObj);
CDrawOleObj();
public:
CDrawOleObj(const CRect& position);
// Implementation
public:
virtual void Serialize(CArchive& ar);
virtual void Draw(CDC* pDC);
virtual CDrawObj* Clone(CDrawDoc* pDoc);
virtual void OnOpen(CDrawView* pView);
virtual void MoveTo(const CRect& positon, CDrawView* pView = NULL);
virtual void OnEditProperties();
virtual void Remove();
virtual ~CDrawOleObj();
static BOOL c_bShowItems;
CDrawItem* m_pClientItem;
CSize m_extent; // current extent is tracked separate from scaled position
};
#endif // __DRAWOBJ_H__
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -