?? figureobj.h
字號:
//FigureObj.h 圖形元基類聲明文檔
#pragma once
#include "afx.h"
class CVisDrawDoc;
class CVisDrawView;
enum DrawObj{
// pointObj,
//lineObj,
//hlineObj, //水平直線
//vlineObj, //垂直線
//rectObj,
//roundRectObj,
//ellipseObj,
// circleObj,
// tparcObj,
//secarcObj,
//csearcObj,
//polylineObj,
// polygonObj,
// spliteObj,
// textObj,
//selectObj,
cheObj,
baoObj,
xiObj,
moObj,
tangObj,
zuanObj,
chongObj,
juObj,
zhongxinObj,
zhewanObj
};
class CFigureObj :
public CObject
{
//CFigureObj(void);
//~CFigureObj(void);
protected:
DECLARE_SERIAL(CFigureObj);
CFigureObj(void);
public:
//構造函數
CFigureObj(const CRect& position);
CFigureObj(DrawObj nDrawObj);
virtual ~CFigureObj(void);
//實現函數
//序列化
virtual void Serialize(CArchive& ar);
//繪制
virtual void Draw(CVisDrawView* pView = NULL, CDC* pDC = NULL);
//重新計算圖形元外接矩形
virtual CRect CalcBounds(CVisDrawView* pView = NULL);
virtual int GetHandleCount();
virtual CPoint GetHandle(CVisDrawView* pView, int nHandle);
CRect GetHandleRect(int nHandleID, CVisDrawView* pView);
enum TrackerState { normal, selected, active };
void DrawTracker(CVisDrawView* pView, CDC* pDC, TrackerState state);
//操作函數
void Invalidate();
virtual void Remove();
virtual BOOL Intersects(CVisDrawView* pView, const CRect& rect);
virtual BOOL IsSelected(CVisDrawView* pView, const CPoint& point);
virtual int HitTest(CVisDrawView* pView, CPoint point, BOOL bSelected);
virtual void MoveHandleTo(int nHandle, CPoint point, CVisDrawView* pView = NULL);
virtual void MoveTo( CPoint delta, CVisDrawView* pView);
double PointToPoint(CPoint pt1, CPoint pt2);
virtual void OnEditProperties();
//屬性成員
//圖形元邊界矩形,以邏輯坐標表示
CRect m_position;
CVisDrawDoc* m_pDocument;
//設定線的顏色
virtual void SetLineColor(COLORREF color);
//設定圖形充填顏色
virtual void SetFillColor(COLORREF color);
virtual void SetIsBrush(BOOL bBrush){m_bBrush = bBrush;}
//診斷函數
#ifdef _DEBUG
void AssertValid();
#endif
//添加成員變量
protected:
BOOL m_bPen; //是否拾取了畫筆
LOGPEN m_logpen; //畫筆
BOOL m_bBrush; //是否拾取了畫刷
LOGBRUSH m_logbrush; //畫刷
public:
virtual void OnOpen(CVisDrawView* pView);
//鼠標句柄
DrawObj m_drawObj;
static DrawObj c_drawObj;
static CPtrList c_objs;
//CPoint lastPoint, prePoint;
static CFigureObj* FindObj(DrawObj drawObj); //對象查找
public:
CString m_MachineModel;
CString m_Jcxinghao;
};
typedef CTypedPtrList<CObList, CFigureObj*> CFigureObjList;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -