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.

221 lines
9.0 KiB
C

1 month ago
/**************************************************************************************
<EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ItemSingleWell.h
<EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD>ػ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><EFBFBD><EFBFBD>
1 virtual BOOL InitPropertyGrid(CXTPPropertyGrid& grid); <EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD>
2 virtual void OnLButtonDown(UINT nFlags, CPoint point); <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
3 virtual void OnLButtonUp(UINT nFlags, CPoint point);
4 virtual void OnMouseMove(UINT nFlags, CPoint point);
5 virtual void OnDraw(CXyDC* pXyDC); <EFBFBD><EFBFBD><EFBFBD>Ƹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>
6 virtual BOOL OnGridItemChangeValue(CXTPPropertyGridItem* pItem); <EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD>Կ<EFBFBD><EFBFBD>ı<EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ĺ<EFBFBD><EFBFBD><EFBFBD>
7 void TrackLeftGroup(); <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
8 void TrackRightGroup(); <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
**************************************************************************************/
#pragma once
#include "ItemWellBase.h"
#define HADNLESIZE 10
//typedef TObjectList<CWellDataObj> CDataObjList;
class CTrackGroup;
namespace NItem
{
struct DiscretreDataStuct
{
float depth;
float value;
};
class CItemSingleWell : public CItemWellBase
{
public:
CItemSingleWell(CSigmaDoc* pDoc);
~CItemSingleWell(void);
virtual void CancelSelection(void);
virtual void OnLButtonDblClk(UINT nFlags, CPoint point) override;
virtual void OnLButtonDown(CDC *pDC, UINT nFlags, CPoint point, int vk) override;
virtual void OnLButtonUp(CDC *pDC, UINT nFlags, CPoint point, int vk = 0) override;
virtual int OnMouseMove(CDC *pDC, UINT nFlags, CPoint point) override;
virtual void OnRButtonDown(UINT nFlags, CPoint point) override;
virtual int GetSubMenu();
virtual BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
virtual BOOL OnSetCursor(CPoint pt, int& handle);
/** @brief <20><><EFBFBD>Ƹ<EFBFBD><C6B8><EFBFBD><EFBFBD>ֱ<EFBFBD> */
virtual void OnDraw(CXyDC* pXyDC);
virtual void OnDraw(CXyDC* pXyDC, CDC* pDC) override;
/** @brief <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD> */
//virtual BOOL InitPropertyGrid(CXTPPropertyGrid& grid);
///** @brief <20><>Ӧ<EFBFBD><D3A6><EFBFBD>Կ<EFBFBD><D4BF>ı<EFBFBD><C4B1><EFBFBD>Ϣ<EFBFBD>ĺ<EFBFBD><C4BA><EFBFBD> */
//virtual BOOL OnGridItemChangeValue(CXTPPropertyGridItem* pItem);
/** <20><>Ӧ<EFBFBD><D3A6><EFBFBD>Կ<EFBFBD><D4BF>ڰ<EFBFBD>ť<EFBFBD><C5A5><EFBFBD><EFBFBD><EFBFBD>µĶԻ<C4B6><D4BB><EFBFBD>*/
//virtual void OnInplaceButtonDown(CXTPPropertyGridItem* pItem);
//<2F><><EFBFBD><EFBFBD>ͼԪ<CDBC><D4AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Item
virtual CItemWellBase* CreateItem(CWellBaseObj* pObj);
virtual void DeleteItem();
CWellPole *GetWellObject();
virtual void SetDrawObj(CWellBaseObj* pObj);
virtual CWellBaseObj* GetDrawObj();
void EnableEditTrackInData(BOOL b) { m_bEditTrackInData = b; }
BOOL IsEditTrackInData() { return m_bEditTrackInData; }
CTrackObj* GetSelectedTrack();
//<2F><><EFBFBD>ӵ<EFBFBD>
virtual bool AddTrack();
virtual bool AddTrackDlg(CWellPole* pWellObj,CTrackObj* pSelectTrack);
BOOL AddTrack(CTrackObj* pSelectTrack,int trackType[], int trackNum);
//<2F><>ѡ<EFBFBD>еĵ<D0B5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>
virtual bool AddTrackAfterSelected();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void TrackLeftGroup();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void TrackRightGroup();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
void SetLDown(BOOL bL) { m_bLDown = bL; }
//<2F><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual void Clear();
virtual int DeleteSelection(void);
////Ӧ<>þ<EFBFBD>ģ<EFBFBD><C4A3>
virtual void ApplingWellTemplate();
virtual void ApplingWellDbTemplate();
//<2F><><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݶ<EFBFBD><DDB6><EFBFBD>
void AddTrackInObjData();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD>
void BuildTrackInObj(CTrackObj* pTrackObj, vector<CString> &fields, StringVectorSet &datas, vector<CString> &fields2,StringVectorSet &vecdatas2);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD>
void BuildTrackInObj(CTrackObj* pTrackObj, double *pDepth,double *pData,int datanum);
//<2F><><EFBFBD>ͻ<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD><EFBFBD>ֶ<EFBFBD>
void GetTrackTable(CTrackObj* pTrackObj, CString &strTrackType, CString& table, CString& curve);
////<2F><><EFBFBD><EFBFBD><E5B5BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void ImportDataAll(CWellPole* pWell, BOOL bReplace=TRUE);
//void ImportDataFromLM(CTrackGroup* pGroup,CWellPole* pWell,CLMInterface* pLM);
//void ImportDataFromDB(CTrackGroup* pGroup,CWellObj* pWell,Db::CSqlStatementManager *pSqlManager, BOOL bReplace=TRUE);
//void ImportTrackDataFromDB(CTrackObj* pTrack,CWellObj* pWell,Db::CSqlStatementManager *pSqlManager, BOOL bReplace=TRUE);
/////<2F><><EFBFBD>ߵ<EFBFBD><DFB5>ӿ⵼<D3BF><E2B5BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>ӹ<EFBFBD><D3B9><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>а<D0B0>ź<EFBFBD>ʩ<EFBFBD><CAA9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void GetOperationAndVersion(const CString strWellName, const CString strCurveName, vector<CString> &OperatVec, vector<CString> &VersionVec);
/// <20><>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EBB5BD><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD>
void ExportDataAll(CWellPole* pWell);
void ExportDataToDB(CTrackObj* pTrackObj);
/// <20>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>dowmʱ<6D>Ƿ<EFBFBD>ѡ<EFBFBD>б߿<D0B1><DFBF>ߣ<EFBFBD>
void BeSelectBorderLine(CTrackGroup* pGroup,CPoint2D pt,double dHandleSize);
///<2F><><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD>ʱ<EFBFBD><CAB1>ͬλ<CDAC>õĹ<C3B5><C4B9><EFBFBD>
BOOL SetMoveCursor(CTrackGroup* pGroup,CPoint2D pt,double dHandleSize,CWellPole* pWell);
BOOL SetMoveCursor(CTrackGroup* pGroup, CPoint2D pt, double dHandleSize, CWellPole* pWell, int& handle);
/// <20>϶<EFBFBD><CFB6><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ,SortTrackWhenMoving<6E><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݹ<EFBFBD><DDB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˼<EFBFBD>¼һ<C2BC>²<EFBFBD><C2B2><EFBFBD>
BOOL SortTrackWhenMoving(CTrackGroup* pGroup,CTrackObj* pTrackMoving, int& ideep);
///////////////<2F><>о<EFBFBD><D0BE>λ<EFBFBD><CEBB><EFBFBD>غ<EFBFBD><D8BA><EFBFBD>
///<2F><>о<EFBFBD><D0BE>Ϊʱ<CEAA><CAB1><EFBFBD><EFBFBD>ɢ<EFBFBD><C9A2><EFBFBD><EFBFBD>ѡ<EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD>ȶ<EFBFBD><C8B6><EFBFBD><EFBFBD><EFBFBD>
//void MoveDiscreteSegement(CObjectBase* pObj,const double fdistance);
//////HFX <20><>о<EFBFBD><D0BE>λ<EFBFBD><CEBB>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD>ȶ<EFBFBD><C8B6>ڵ<EFBFBD>ɢ<EFBFBD><C9A2><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȵ<EFBFBD><C8B5><EFBFBD>ʼ<EFBFBD>±<EFBFBD><C2B1>ͽ<EFBFBD><CDBD><EFBFBD><EFBFBD>±<EFBFBD>
//void GetDepthAndValueDiscreteSegement(CObjectBase* pObj,CArray<double> &ArrDepth,CArray<double> &ArrValue,const double dTop, const double dBot,int &nStratIndex,int &nEndIndex);
////////<2F><>о<EFBFBD><D0BE>λ<EFBFBD><CEBB><EFBFBD>ȶ<EFBFBD><C8B6>ڵ<EFBFBD>ɢ<EFBFBD><C9A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//void SortDiscreteSegment(CArray<double> &ArrDepth,CArray<double> &ArrValue);
///////<2F>ź<EFBFBD>˳<EFBFBD><CBB3><EFBFBD><EFBFBD>ɢ<EFBFBD><C9A2><EFBFBD><EFBFBD><EFBFBD>ݷŻ<DDB7><C5BB><EFBFBD>ɢ<EFBFBD><C9A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//void SetDiscreteSegment(CObjectBase* pObj,CArray<double> &ArrDepth,CArray<double> &ArrValue,const int nStartIndex,const int nEndIndex);
//////////////////////////////////////////////////
void DrawWellHandle();///< <20><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>״̬
/// <20><><EFBFBD>ӹ<EFBFBD><D3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>»<EFBFBD><C2BB>ù<EFBFBD><C3B9><EFBFBD><EFBFBD>е<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߻<EFBFBD><DFBB><EFBFBD>ɢ<EFBFBD><C9A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void GetAllCurveNameInDb(CStringArray &strNameArr,const CString strTableName,CString nameField);
//void GetWavetraceDataNameFromDb(CStringArray &strNameArr);
//////////////////////////////////////////////////////////////////////////
/////<2F><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>ʱ<EFBFBD>Ӿ<EFBFBD><D3BE>л<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD>
//virtual void GetLegendObject(const CStringArray &StyleList,CRect8 rt);
///////<2F><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>ʱ<EFBFBD><CAB1><EFBFBD>˵<EFBFBD><CBB5>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//virtual BOOL IsRepeat(CObjectBaseList &Objectlist,const CString strName);
///////<2F><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>CXy
//virtual void CreatLegendObject(CObjectBaseList &Objectlist,CRect8 rt,CXy* pXy);
//virtual void GetSymbolObj(CObjectBaseList &Objectlist,const CStringArray &StyleList, CWellPole* pWell);
//////////////////////////////////////////////////////////////////////////
//<2F><EFBFBD><E2BEAE><EFBFBD><EFBFBD>
virtual BOOL AnalysisPor();
virtual BOOL AnalysisSand();
virtual BOOL CalculatePor();
virtual BOOL CalculateSH();
void CurveDataStatistic();
void DrawSelectPolyRange(CXyDC* pXyDC,std::vector<CPoint2D>& PtsVec);
/*ʹ<><CAB9>SetReUnDoActionʱ<6E><CAB1><EFBFBD><EFBFBD>ʹ<EFBFBD>ô浵<C3B4><E6B5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6BBBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ˾<D4B4><CBBE><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD>õľ<C3B5><C4BE><EFBFBD>ָ<EFBFBD><EFBFBD><EBB6BC><EFBFBD>»<EFBFBD>ȡһ<C8A1><D2BB>*/
virtual void SetReUnDoAction(BOOL bNoSaveData = TRUE, UINT actionType = IDS_STRING_ACTION_MOVE);
protected:
CInsertDraw *GetLegendInsertDraw(CString strMark); //<2F><><EFBFBD><EFBFBD><EFBFBD>Ƶõ<C6B5>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD>
double GetWellProjecttionAngle(CWellPole *pWellObj); //<2F>õ<EFBFBD>һ<EFBFBD>ھ<EFBFBD><DABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>ͶӰ<CDB6>Ƕ<EFBFBD>
//void SetScrollBarRange();
void CreateDragImage();
CBitmap* GetBitmap(CDC* pdc,CRect wellHRect,CRect ilnWellHRect,BOOL bTrack = FALSE,CPoint *plgPts = NULL);
virtual void DrawHandle(CXyDC *pDC);///< <20><><EFBFBD><EFBFBD>ǰͼԪѡ<D4AA><D1A1>״̬ ggff
virtual void DrawHandle(CXyDC *pDC, const CPoint2D &point); //ggff
virtual void DrawSelected(CXyDC *pXyDC,CWnd *pWnd);
void DrawMoveSelected(CXyDC *pXyDC,CWnd *pWnd);
void ApplingFileTemplate(CFile &fr);
////<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ұߵĵ<DFB5>
CTrackObj* GetLastTrackFromTrackGroup(CTrackGroup* trackGroupObj);
////Por<6F><72><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>
//void CreatePorTrack(CWellObj* pWell,CDataObjList& CurveList,BOOL bAddResult,double PorTemp,double SwWaterTemp,double SwOilTemp,double AnalysisHd);
////Sand<6E><64><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>
//void CreateSandTrack(CWellObj* pWell,CDataObjList& CurveLista,BOOL bAddResult,double PorTemp,double SwWaterTemp,double SwOilTemp,double AnalysisHd);
////<2F><><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD>ߵ<EFBFBD>
CTrackCurve* CreateNewCurveTrack(CWellPole* pWell,CString strTrackName,CString strUnit,double TrackWidth,double LeftValue,double RightValue,BOOL bLog,COLORREF clr);
//<2F><><EFBFBD>ӵ<EFBFBD>
void AddTrack(CTrackObj* pTrackSelected, TRACKLIST& trackAddList, BOOL bTrackGroup=FALSE);
void DestroyVHCursor();
//CreateAngleCursor(HCURSOR cursor= ԭʼ<D4AD><CABC><EFBFBD><EFBFBD>,CBitmap *pCursorBmp =<3D>¹<EFBFBD><C2B9><EFBFBD><EFBFBD><EFBFBD>λͼ,CBitmap *pCursorMaskBmp=<3D>¹<EFBFBD><C2B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊͼ,double angle=<3D><>ת<EFBFBD>Ƕ<EFBFBD>)
HCURSOR CreateAngleCursor(HCURSOR cursor,CBitmap* pCursorBmp ,CBitmap* pCursorMaskBmp,double angle);//ggff
void CreateVHCursor();
//void AddWellIntervals(CXTPPropertyGridItem* pParentItem);//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
protected:
CWellPole* m_pWell; ///< <20><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD>ľ<EFBFBD>
CSigmaDoc* m_pWndOld;
CImageList* m_pDragImage; ///< <20><>קλͼ
CRect m_rectImage; ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD>з<EFBFBD>Χ
BOOL m_bEditTrackInData; ///< ѡ<>е<EFBFBD><D0B5>ڿհ״<D5B0><D7B4><EFBFBD><E0BCAD><EFBFBD><EFBFBD>
BOOL m_bDragImage;
BOOL m_bWellFrame;
int m_nTrackPos; ///< <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD>
CPoint2D m_ptBegin; ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD>ʼ<EFBFBD><CABC>
CPoint2D m_ptEnd; ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>õĽ<C3B5><C4BD><EFBFBD><EFBFBD><EFBFBD>
int m_PointNum;
CPoint *m_pPointBuf;
HCURSOR m_VCursor,m_HCursor; //б<><D0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µĴ<C2B5>ֱ<EFBFBD>ھ<EFBFBD>ͷ<EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD>ƽ<CBAE>ھ<EFBFBD>ͷ<EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD> ggff
CBitmap *m_pVCursorBmp,*m_pVCursorMaskBmp,*m_pHCursorBmp,*m_pHCursorMaskBmp;
std::vector<CXyDC*> m_DcVec; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ö<EFBFBD><C3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DC
std::vector<CWnd *> m_WndVec;
LOGFONT m_logFont;
};
};