You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kev/Drawer/SSBase/WellPoleLib/InTrackTextBase.h

113 lines
3.9 KiB
C

1 month ago
#pragma once
#include "InTrackDepthSegment.h"
//<2F>ı<EFBFBD><C4B1><EFBFBD>
class AFX_EXT_CLASS CInTrackTextBase : public CInTrackDepthSegment
{
protected:
protected:
DWORD m_nTrackContentStyle;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD>
enum TrackContentStyle
{
///<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD>
TrackContentStyleNormal = 0x0001, //Ĭ<><C4AC>
TrackContentStyleLeft = 0x0002, //<2F><><EFBFBD>߽<EFBFBD>ָʾ<D6B8><CABE><EFBFBD><EFBFBD>
TrackContentStyleRight = 0x0004, //<2F>ұ߽<D2B1>ָʾ<D6B8><CABE><EFBFBD><EFBFBD>
};
public:
CInTrackTextBase();
CInTrackTextBase(const CRect8& position);
virtual ~CInTrackTextBase();
public:
int m_nPartNum; //<2F><><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int m_selStartX, m_selEndX; //<2F>ı<EFBFBD><C4B1>б<EFBFBD>ѡ<EFBFBD>е<EFBFBD><D0B5>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int m_selStartY, m_selEndY; //<2F>ı<EFBFBD><C4B1>б<EFBFBD>ѡ<EFBFBD>е<EFBFBD><D0B5>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//m_UpLowIdArr<72><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD>±<EFBFBD><C2B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD>Ԫ<EFBFBD><D4AA>Ϊһ<CEAA>
//<2F><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD><C2B1><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD>ַ<EFBFBD><D6B7>ı<EFBFBD>ʶ<EFBFBD><CAB6>C<EFBFBD><43><EFBFBD><EFBFBD>ͨ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>U<EFBFBD>ϱ꣬L<EAA3AC>±<EFBFBD>
//<2F>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD>ǵ<EFBFBD>ǰ<EFBFBD><C7B0>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD>ʼλ<CABC>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǵ<EFBFBD>ǰ<EFBFBD><C7B0>ʶ<EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD>λ<EFBFBD>á<EFBFBD>
//CArray<int,int> m_UpLowIdArr;
CText m_Text;
//COLORREF m_Color;
double m_TopContentExtend; //<2F><><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD>ֵ
double m_BotContentExtend; //<2F>ײ<EFBFBD><D7B2>ƶ<EFBFBD><C6B6><EFBFBD>ֵ
public:
///<2F><><EFBFBD>ر<EFBFBD><D8B1><EFBFBD>
virtual void SetTrackContentStyle(DWORD flags);
virtual void SetContentStyleNormal(BOOL bFlag);
virtual void SetContentStyleLeft(BOOL bFlag);
virtual void SetContentStyleRight(BOOL bFlag);
virtual DWORD GetTrackContentStyle();
virtual BOOL GetContentStyleNormal();
virtual BOOL GetContentStyleLeft();
virtual BOOL GetContentStyleRight();
virtual void Draw(CXyDC* pDC);
//virtual BOOL Intersects(const CRect8& rect, double dHandleSize);
virtual void MoveTo(CRect8& position);
virtual void MoveHandleTo(int nHandle, CPoint2D point);
virtual void operator=(CInTrackTextBase& object);
virtual void Serialize(CArchive& ar, const short &ver);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>η<EFBFBD>Χ
virtual void ReSetPosition(CRect8 rect);
//<2F><>׼<EFBFBD><D7BC><EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD><D6B2><EFBFBD>
virtual void NormalText();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1><EFBFBD>Ҫ<EFBFBD><D2AA>תʱ<D7AA><CAB1>SetWorldRotate<74><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DC<44><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>ת<EFBFBD><D7AA>
static void SetWorldRotate(CDC *pDC, int nAngle, CPoint centerPt, int &oldMode);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ResetWorldRotate<74><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DC<44><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
static void ResetWorldRotate(CDC *pDC, int nAngle, int oldMode);
BOOL CanShowSelText();//<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD>˲<EFBFBD><CBB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void SetHideSel();//ȡ<><C8A1><EFBFBD>ı<EFBFBD><C4B1>б<EFBFBD>ѡ<EFBFBD>еIJ<D0B5><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ѡ<EFBFBD><D1A1>״̬
//<2F>õ<EFBFBD><C3B5>ı<EFBFBD><C4B1>Ĵ<EFBFBD>С<EFBFBD><D0A1>cnum<75><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֣<EFBFBD>lunum<75><6D><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD><C2B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>
CSize GetTextSize(CDC *pDC, int& cnum, int& lunum);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD><C2B1>ı<EFBFBD><C4B1><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>壬ֻ<E5A3AC><D6BB><EFBFBD><EFBFBD>ͨ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>߶<EFBFBD>
void CreateUpLowFont(CFont &font, CSize size, LOGFONT& logfont);
//ɾ<><C9BE><EFBFBD><EFBFBD>ǰѡ<C7B0>е<EFBFBD><D0B5>ַ<EFBFBD><D6B7><EFBFBD>
void DelSubStr(int &CaretX, int &CaretY);
//<2F><><EFBFBD>õ<EFBFBD>ǰѡ<C7B0>е<EFBFBD><D0B5>ַ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>±ꡣ
void SetUpOrLowId(int id);
void SetUpOrLow(int type, int index);
// <20>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD>
void SetUpOrLowAuto();
//<2F><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD>еIJ<D0B5><C4B2>ֵ<EFBFBD>λ<EFBFBD>á<EFBFBD>
void SetSelectChar(CPoint2D downPt, CPoint2D localPt);
//<2F><><EFBFBD><EFBFBD>Pt<50><74><EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD>ʱʹ<CAB1><CAB9>GetCaretXYPos1<73><31><EFBFBD>õ<EFBFBD><C3B5><EFBFBD>Pt<50><74><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD>е<EFBFBD><D0B5>С<EFBFBD><D0A1><EFBFBD><EFBFBD>ַ<EFBFBD>λ<EFBFBD>á<EFBFBD>
void GetCaretXYPos1(CDC *pDC, CPoint2D pt, int& CaretX, int& CaretY);
//<2F><>Pt<50><74><EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD>򸽽<EFBFBD><F2B8BDBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD>Ҳ<EFBFBD>ʱ<EFBFBD><CAB1>GetCaretXYPos2<73>õ<EFBFBD><C3B5><EFBFBD>Pt<50><74><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD>е<EFBFBD><D0B5>С<EFBFBD><D0A1><EFBFBD><EFBFBD>ַ<EFBFBD>λ<EFBFBD><CEBB>
//ֻ<>е<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>ʱ<EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD>ɿ<EFBFBD>ʱ<EFBFBD>ĵ㣬<C4B5>Ż<EFBFBD><C5BB>õ<EFBFBD>GetCaretXYPos2
void GetCaretXYPos2(CDC *pDC, CPoint2D pt, int& CaretX, int& CaretY);
//<2F>õ<EFBFBD><C3B5>С<EFBFBD><D0A1><EFBFBD>CaretX<74><58>CaretY<74><59><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>ܳ<EFBFBD><DCB3><EFBFBD><EFBFBD>е<EFBFBD>λ<EFBFBD><CEBB>CaretArrPos
void GetCaretArrPos(int& CaretArrPos, int CaretX, int CaretY);
void GetStrFmt(CStringArray* pstrArr, CString str, int& maxcol, int&rownum);
//<2F>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>
void GetStrRowColumn(int &rows, CString str, CUIntArray &startArr, CUIntArray &endArr);
virtual BOOL IsDerivedTextBase() { return TRUE; }
//Ϊ<><CEAA>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD>
public:
//<2F><><EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD> 2015-11-3
virtual void DrawInclinedTextContent(CXyDC* pDC, CString text, GDFLOGFONT *plogFont, int nHor = 1, int nVer = 1);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5>ı<EFBFBD><C4B1><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ұ߽<D2B1><DFBD><EFBFBD>ָ<EFBFBD><D6B8> 2015-11-3
virtual void DrawInclinedTextContent(CCurveEx& leftBorder, CCurveEx& rightBorder, CXyDC* pDC, CString text, GDFLOGFONT *plogFont, int nHor = 1, int nVer = 1);
// <20><><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD>İ<EFBFBD><C4B0><EFBFBD><EFBFBD><EFBFBD>
virtual void DrawInclinedOutline(CXyDC* pDC);
};