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.

84 lines
1.9 KiB
C++

1 month ago
#include "StdAfx.h"
#include ".\itemviewWellPole.h"
#include "SigmaDoc.h"
#include "SigmaView.h"
#include "WellPoleDoc.h"
#include "WellPoleView.h"
namespace NDrawView
{
CItemViewWellPole::CItemViewWellPole(CSigmaDoc * ppDoc)
:CItemView(ppDoc)
{
}
CItemViewWellPole::CItemViewWellPole(void)
: CItemView(NULL)
{
}
CItemViewWellPole::~CItemViewWellPole(void)
{
}
void CItemViewWellPole::OnLButtonDown(CDC *pDC, UINT nFlags, CPoint point, int vk)
{
switch (GetType())
{
case ID_VIEW_WINDOW:
m_rect.left = GetDC()->GetRX(TransfromX(point.x));
m_rect.top = GetDC()->GetRY(TransfromY(point.y));
m_rect.right = m_rect.left;
m_rect.bottom = m_rect.top;
case ID_VIEW_PAN:
case ID_VIEW_PAN_WELL:
m_ptLeft = point;
m_rect.left = GetDC()->GetRX(TransfromX(point.x));
m_rect.top = GetDC()->GetRY(TransfromY(point.y));
m_rect.right = m_rect.left;
m_rect.bottom = m_rect.top;
bCaptureCursor = TRUE;
if (GetType() == ID_VIEW_PAN)
LButtonDownPan(point);
break;
}
}
void CItemViewWellPole::OnLButtonUp(CDC *pDC, UINT nFlags, CPoint point, int vk)
{
CItemView::OnLButtonUp(pDC, nFlags, point, vk);
}
int CItemViewWellPole::OnMouseMove(CDC *pDC, UINT nFlags, CPoint point)
{
if (GetType() == ID_VIEW_PAN_WELL)
{
MouseMovePanWell(point);
CWellPoleView* pView = (CWellPoleView*)GetActiveView();
pView->m_pWndCallBack(eWellPoleCallbackMsgDef::tInvalidateWnd, 0);
}
else
CItemView::OnMouseMove(pDC, nFlags, point);
return 1;
}
void CItemViewWellPole::MouseMovePanWell(CPoint point)
{
CXyDC *pXyDC = GetDC();
CWellPoleView* pView = (CWellPoleView*)GetActiveView();
CPoint pt = pXyDC->GetScreen(m_rect.BottomRight());
pView->MouseWheel(0, point.y - pt.y, point);
pView->MouseWheel(1, point.x - pt.x, point);
// TRACE("p1.x=%d y=%d, pt2.x=%d y=%d \r\n", pt.x, pt.y, point.x, point.y);
m_rect.right = pXyDC->GetRX(point.x);
m_rect.bottom = pXyDC->GetRY(point.y);
}
}//namespace