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.

103 lines
3.8 KiB
C

1 month ago
/**************************************************************************************
<EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ItemBend.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>
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>
<EFBFBD>޸<EFBFBD><EFBFBD><EFBFBD>ʷ<EFBFBD><EFBFBD>
1 virtual void SetSelectMode(CPoint2D pt); <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><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2 virtual void AddControlPoints(); <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>²<EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>߿<EFBFBD><EFBFBD>Ƶ<EFBFBD>
3 virtual void ComputeControls(CPointArr &ptArr,double fSlope);<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>
**************************************************************************************/
#pragma once
#include "item.h"
#include "../ItemWellBase.h"
#include "ItemWellSection.h"
#include "MultiWellSectionLib\BendObj.h"
namespace NItem
{
class CItemBend :
public CItemWellBase
{
public:
CItemBend(CSigmaDoc* pDoc);
~CItemBend(void);
enum CurveType
{
CurveTopLine, //<2F>ϲ<EFBFBD>λ<EFBFBD><CEBB>
CurveBotLine, //<2F>²<EFBFBD>λ<EFBFBD><CEBB>
CurveBreakLithoLine, //<2F><><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD>
CurveBend, //<2F><><EFBFBD><EFBFBD>
CurveNone
};
CurveType m_SelectCurveMode;////<2F><>ǰѡ<C7B0>еĶ<D0B5><C4B6><EFBFBD>(<28>ϡ<EFBFBD><CFA1>²<EFBFBD>λ<EFBFBD>ߣ<EFBFBD><DFA3><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
virtual void OnLButtonDown(CDC *pDC, UINT nFlags, CPoint point, int vk);
virtual void OnLButtonUp(CDC *pDC, UINT nFlags, CPoint point, int vk = 0);
virtual int OnMouseMove(CDC *pDC, UINT nFlags, CPoint point);
//virtual void OnRButtonDown(UINT nFlags, CPoint point);
virtual void OnLButtonDblClk(UINT nFlags, CPoint point);
virtual BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
virtual BOOL OnSetCursor(CPoint pt, int& handle);
virtual int GetSubMenu();
/** @brief <20><><EFBFBD>Ƹ<EFBFBD><C6B8><EFBFBD><EFBFBD>ֱ<EFBFBD> */
virtual void OnDraw(CXyDC* pXyDC);
virtual void OnDraw(CXyDC* pXyDC,CDC *pDC);
void SetSelectCurveMode(CurveType type) { m_SelectCurveMode = type; };
//<2F>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CBendObj *GetBendObject();
//void SetBendObject(CBendObj* pBend);
virtual void SetDrawObj(CWellBaseObj* pObj) { m_pBend = (CBendObj*)pObj; }//= 0;
//virtual void SetItemWell(CItem* pItem) {}//= 0;
//<2F><><EFBFBD><EFBFBD>Item<65><6D>ֵ
virtual void SetItemSection(CItem* pItem) {m_pItemWellSection = (CItemWellSection*)pItem;}//= 0;
virtual CWellBaseObj* GetDrawObj() { return m_pBend; }
virtual int DeleteSelection(void);
///// <20><><EFBFBD>ݵ<EFBFBD>λ<EFBFBD><CEBB><EFBFBD>ж<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǹ<EFBFBD><C7B8><EFBFBD><EFBFBD>֣<EFBFBD><D6A3>ϲ<EFBFBD>λ<EFBFBD>ߡ<EFBFBD><DFA1>²<EFBFBD>λ<EFBFBD>ߡ<EFBFBD><DFA1><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD>ߡ<EFBFBD><DFA1><EFBFBD><EFBFBD><EFBFBD><E3B1BE><EFBFBD><EFBFBD>
virtual int HitTestMode(CPoint2D pt );
virtual int HitTestMode_Resform(CPoint2D pt);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>²<EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD>߿<EFBFBD><DFBF>Ƶ<EFBFBD>
virtual void AddControlPoints();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD><D3BF>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>¿<EFBFBD><C2BF>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual void ComputeControls(CPointArr &ptArr,double fSlope);
//<2F><><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD>
virtual void AddControlPoint(dfPoint dp);
//<2F>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
virtual void SetBendBreakStyle(CString strBreak);
void AddBendLayerPoint();
void DeleteBendLayerPoint();
void OnLButtonDownAfterHitTest(UINT nFlags, CPoint point, int tnDragHandle,CDC* pDC);
protected:
CBendObj* m_pBend; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>bend
CItemWellSection* m_pItemWellSection;//<2F><><EFBFBD><EFBFBD>Item
BOOL m_bChangeAll; //<2F>ı<EFBFBD><C4B1><EFBFBD>λ<EFBFBD>߻<EFBFBD><DFBB>ʿ<EFBFBD><CABF>ر<EFBFBD><D8B1><EFBFBD>
BOOL m_bOnLine; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void OnDraw_DFPCG(CXyDC* pXyDC,CBendObj* pBend,CDC *pDC);
void OnDraw_Resform(CXyDC* pXyDC, CBendObj* pBend , CDC *pDC);
void DrawLayerLine(CXyDC* pXyDC, CPointArr& linePtArr, int nHandleSize, CDC *pDC);
void DrawDragLayerLinePt(CXyDC* pXyDC, CPointArr& linePtArr, int nHandleSize, int nHandle, CPoint ptNow, CDC *pDC);
void DrawLayerLineSelectHandle(CXyDC* pXyDC, CurveType selectType, int nHandleSize, CDC* pDC);
int m_SelectHandle; //<2F><>¼<EFBFBD><C2BC><EFBFBD>²<EFBFBD><C2B2><EFBFBD><EFBFBD>߱<EFBFBD>ѡ<EFBFBD>е<EFBFBD>handle
protected:
void HitTestBend(CPoint2D pt);
};
};