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.

63 lines
1.7 KiB
C

1 month ago
#pragma once
#include "SigmaDoc.h"
#pragma pack(1)
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>λ ʵ<>ʳ<EFBFBD><CAB3><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>λ<EFBFBD><CEBB> xyz
struct ElementInfo
{
wchar_t * name; // [50];
int lenOfName;
int elementType;
wchar_t * layerName; //[50];
int lenOfLayerName;
wchar_t * markName;// [50];
int lenOfMarkName;
double length;
double area;
double azimuth; //<2F><>λ<EFBFBD><CEBB>
double x;
double y;
double z;
};
#pragma pack()
class SelectionDrawer;
//û<>б<EFBFBD>Ҫ<EFBFBD>̳<EFBFBD>CItem
class CFindReplacement
{
public:
CFindReplacement(CSigmaDoc * ppDoc);
virtual ~CFindReplacement(void);
void Start();
void FindAll(CString strFindWhat, BOOL bMatch, BOOL bCapitalLower);
//<2F><><EFBFBD><EFBFBD><EFBFBD>滻ͼԪ<CDBC><D4AA><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD>
int ReplaceAll(CString strOld, CString strNew, BOOL bMatch, BOOL bCapitalLower);
//0--<2D>ҵ<EFBFBD><D2B5><EFBFBD> 1--<2D><>һ<EFBFBD>β<EFBFBD><CEB2><EFBFBD> <20><>û<EFBFBD>ҵ<EFBFBD> 2--<2D>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int FindNext(CString strFindWhat, BOOL bMath, BOOL bCapitalLower
, int elementType=0, BOOL onlyEditable=true);
BOOL Replace(CString strOld, CString strNew, BOOL bMatch, BOOL bCapitalLower);
//<2F><><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>ͼԪ<CDBC>ĸ<EFBFBD><C4B8><EFBFBD>
int GetCountOfElement();
void Draw(CDC * pCDC);
BOOL GetElement(int id, ElementInfo * eleInfoOut);
POSITION GetCurrentPostion()
{
return m_posCurrent;
}
//true-<2D><EFBFBD>ɹ<EFBFBD> false-<2D>滻ʧ<E6BBBB><CAA7>
protected:
void ExtendOne(POSITION pos);
BOOL FindNextOnly(CString strFindWhat, int elementType = 0, BOOL onlyEditable = true);
BOOL Replace(POSITION pos, CString strOld, CString strNew, void* pActionList);
protected:
CSigmaDoc * m_pDoc;
SelectionDrawer * m_selectionDrawer;
POSITION m_posCurrent;
//POSITION m_posFind;
BOOL m_bAddInResultList;
BOOL m_bMatch; //<2F>Ƿ<EFBFBD>ȫ<EFBFBD><C8AB>ƥ<EFBFBD><C6A5>
BOOL m_bCapitalLower; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ִ<EFBFBD>Сд
BOOL m_numberFound;
CPositionList m_findResult; //<2F><><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>ȫ<EFBFBD><C8AB>
};