#pragma once #include "IDcDraw.h" #include "XyDC.h" class CDcDrawPlus : public IDcDraw { public: CDcDrawPlus(); CDcDrawPlus(CXyDC* pXyDC); ~CDcDrawPlus(); void Create(CXyDC* pXyDC); void InitDC() { ; } void ReleaseDC() { ; } void Draw(C3DFaultageSurface& fs, COLORREF fillColor, void* HowToViewCurve) override; void Draw(CArc& arc, COLORREF color) override; void Draw(CArc& arc, void* HowToViewCurve) override; void Draw(CCircle &circle, COLORREF Color) override; void Draw(CColorRuler& ruler, CColorBase& color) override; void Draw(CCurveEx &curve, double l1, double l2) override; void Draw(CCurveEx& curve, COLORREF color, BOOL bSmoothHead = TRUE) override; void Draw(CCurveEx& curve, void* HowToViewCurve) override; void Draw(CCurveEx& m_curve) override; void Draw(CCurveRect& curve, COLORREF color) override; void Draw(CCurveRect& rt, void* HowToViewCurve) override; void Draw(CCurveTV5& tv, void* HowToViewCurve) override; void Draw(CEllipse &elp, COLORREF Color) override; void Draw(CFrame& frame, COLORREF color) override; void Draw(CGridding& grid, COLORREF colText, COLORREF colLine) override; void Draw(CHorizontalWell &horizontalwell, void* HowToViewCurve) override; void Draw(CImageInsert& image) override; void Draw(CInsertDraw& m_insert) override; void Draw(CInsertDrawRect& idr) override; void Draw(CInsertOld& m_insert) override; void Draw(CMText& mtext) override; void Draw(CMesh &mesh) override; void Draw(CMetaFile& mf) override; void Draw(CMxn& mxn, COLORREF colFront, COLORREF colBack) override; void Draw(CNet& net, COLORREF colText, COLORREF colLine) override; void Draw(COleObject& ole) override; void Draw(COtherDraw& od, COLORREF color) override; void Draw(COtherDraw& od, void* HowToViewCurve) override; void Draw(CPathFill& path, COLORREF fillColor, void* HowToViewCurve) override; void Draw(CPointCrossName& point, void* HowToViewPoint) override; void Draw(CPointNameEx& point, void* HowToViewPoint) override; void Draw(CPointTwoName& point, void* HowToViewPoint) override; void Draw(CProportion& proportion, COLORREF color) override; void Draw(CRectLabel& rl, COLORREF color, void* HowToViewCurve) override; void Draw(CScaleRuler& sr, COLORREF color) override; void Draw(CSection& section, CRect8* rect = NULL) override; void Draw(CStation& cs) override; void Draw(CText& text, CCurveEx* pCurveRect = NULL) override; void Draw(CText& text, COLORREF color) override; void Draw(CTree& tree) override; void Draw(CXyDC* pInsertXyDC, CInsertOld& m_insert) override; void Draw(CXyDC* pNewXyDC, CInsertDraw& m_insert) override; void DrawArray(CMxn& mxn, COLORREF colFront, COLORREF colBack) override; void DrawGrid(CMxn& mxn) override; void DrawPixel(double x, double y); void PolyLine(CCurveEx& curve, bool bDirectOut = false); void PolyLine(CPointList& dp); void PaintRgn(LPPOINT sp, int count); void Draw(CWellGroup & wellGroup); private: std::shared_ptr GetGraphics(); std::shared_ptr m_cacheXyDC; std::shared_ptr m_cacheOldXyDC; //单独显示符号 // 缓存 Graphics,避免每次都创建新的,提升性能 std::map> m_graphicsMap; };