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.

61 lines
2.5 KiB
C++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/**************************************************************************************
文 件 名ItemAddBend.h
主要功能:
道内层位手工添加bend交互
主要函数列表:
1 virtual BOOL InitPropertyGrid(CXTPPropertyGrid& grid); 初始化属性窗口
2 virtual void OnLButtonDown(UINT nFlags, CPoint point); 鼠标操作
3 virtual void OnLButtonUp(UINT nFlags, CPoint point);
4 virtual void OnLButtonDblClk(UINT nFlags, CPoint point);
5 virtual void OnMouseMove(UINT nFlags, CPoint point);
6 virtual void OnDraw(CXyDC* pXyDC); 绘制辅助手柄
**************************************************************************************/
#pragma once
#include "item.h"
#include "ItemWcsSingleWell.h"
#include "ItemWcsTrackIn.h"
class CBendObj;
namespace NItem
{
class CItemAddBend :
public CItemWellBase
{
public:
CItemAddBend(CSigmaDoc* pDoc);
virtual ~CItemAddBend(void);
virtual void SetDrawObj(CWellBaseObj* pObj) { m_pObj = (CInTrackDepthSegment*)pObj;}
virtual void SetItemWell(CItem* pItem) {m_pItemWell = (CItemWcsSingleWell*)pItem;}//= 0;
//virtual void SetItemSection(CItem* pItem) {m_pItemWell = (CItemWcsSingleWell*)pItem;}//= 0;
virtual CWellBaseObj* GetDrawObj() { return m_pObj; }
/** 绘制辅助手柄 */
virtual void OnDraw(CXyDC* pXyDC,CDC* pDC);
virtual void OnLButtonDown(CDC *pDC, UINT nFlags, CPoint point, int vk);
virtual void OnLButtonUp(CDC *pDC, UINT nFlags, CPoint point, int vk = 0);
virtual void OnLButtonDblClk(UINT nFlags, CPoint point);
virtual int OnMouseMove(CDC *pDC, UINT nFlags, CPoint point);
virtual BOOL OnSetCursor(/*CWnd* pWnd,*/ UINT nHitTest, UINT message);
virtual BOOL OnSetCursor(CPoint pt, int& handle);
//计算新添加bend连层控制点所在直线的左右端点的y值以及左右层的高度
//void ComputeBendPosition(CBendObj* pBend,double &valueLeft,double &valueRight,double &heightLeft,double &heightRight);
void ReBendLeftRightList(CBendObj* pBend);
virtual int DeleteSelection(void);
///** @brief 初始化属性窗口 */
//virtual BOOL InitPropertyGrid(CXTPPropertyGrid& grid);
///** @brief 响应属性框改变消息的函数 */
//virtual BOOL OnGridItemChangeValue(CXTPPropertyGridItem* pItem);
CItemWcsTrackIn* GetLayerItem() { return m_pItemTrackIn; }
protected:
CInTrackDepthSegment * m_pObj;
CItemWcsSingleWell* m_pItemWell;
CItemWcsTrackIn* m_pItemTrackIn;
protected:
void MakeBendForOld(CWellSection* pSection, CWellPole * pWell , UINT nFlags, CPoint point);
void MakeBendForResform(CWellSection* pSection, CWellPole * pWell ,UINT nFlags, CPoint point);
};
};