|
|
|
|
|
#pragma once
|
|
|
|
|
|
#include "InTrackDepthSegment.h"
|
|
|
|
|
|
|
|
|
|
|
|
#define PointLineOffSet 1.0/6 //ָʾ<D6B8><CABE>ռ<EFBFBD>еĵ<D0B5><C4B5><EFBFBD><EFBFBD>ȱ<EFBFBD><C8B1><EFBFBD>
|
|
|
|
|
|
//<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();
|
|
|
|
|
|
CLONE_WELLOBJECT(CInTrackTextBase)
|
|
|
|
|
|
virtual void operator=(CInTrackTextBase& object);
|
|
|
|
|
|
|
|
|
|
|
|
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 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>
|
|
|
|
|
|
virtual void DrawInclinedTextContent(CXyDC* pDC, CString text, GDFLOGFONTEXT *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>
|
|
|
|
|
|
virtual void DrawInclinedTextContent(CCurveEx& leftBorder, CCurveEx& rightBorder, CXyDC* pDC, CString text, GDFLOGFONTEXT *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);
|
|
|
|
|
|
};
|