📄 toolzoomout.cpp
字号:
// ToolZoomOut.cpp: implementation of the CToolZoomInOut class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "DrawInPDA.h"
#include "ToolZoomOut.h"
#include "DrawInPDAView.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
extern CDrawInPDAView *p_View;
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CToolZoomOut::CToolZoomOut():CTool(ttZoom)
{
m_nClick=0;
}
CToolZoomOut::~CToolZoomOut()
{
}
void CToolZoomOut::OnLButtonDblClk(CDrawInPDAView *pView, UINT nFlags, const CPoint &point)
{
CTool::OnLButtonDblClk(pView, nFlags, point);
}
void CToolZoomOut::OnLButtonUp(CDrawInPDAView *pView, UINT nFlags, const CPoint &point)
{
CTool::OnLButtonUp(pView, nFlags, point);
}
void CToolZoomOut::OnMouseMove(CDrawInPDAView *pView, UINT nFlags, const CPoint &point)
{ CDC* pDC;
pDC = pView->GetDC();
pDC->SetROP2(R2_NOT);
if( m_nClick != 0 )
{
pDC->MoveTo(c_DownPoint);
pDC->LineTo(c_DownPoint.x,c_LastPoint.y);
pDC->LineTo(c_LastPoint);
pDC->LineTo(c_LastPoint.x,c_DownPoint.y);
pDC->LineTo(c_DownPoint);
pDC->MoveTo(c_DownPoint);
pDC->LineTo(c_DownPoint.x,point.y);
pDC->LineTo(point);
pDC->LineTo(point.x,c_DownPoint.y);
pDC->LineTo(c_DownPoint);
}
CTool::OnMouseMove(pView, nFlags, point);
}
void CToolZoomOut::OnLButtonDown(CDrawInPDAView *pView, UINT nFlags, const CPoint &point)
{ int x1,y1,x2,y2;
m_nClick++;
if( m_nClick == 1 )
{
mPointOrign=point;
}
else if( m_nClick == 2)
{
mPointOld= point;
// pView->GetDocument()->ShapeAdd(m_pShape);
x1=min(mPointOrign.x,mPointOld.x);
y1=min(mPointOrign.y,mPointOld.y);
x2=max(mPointOrign.x,mPointOld.x);
y2=max(mPointOrign.y,mPointOld.y);
pView->VPtoDP(int(x1),int(y1),&p_View->m_xStart,&p_View->m_yStart);
float blc1=(float)(p_View->m_wScreen/(x2-x1));
float blc2=(float)(p_View->m_hScreen/(y2-y1));
if (blc2<blc1) blc1=blc2;
p_View->blc=p_View->blc/blc1;
// blc1=blc2; m_xStart1,m_yStart1;
// p_View->blc=float(p_View->blc/blc1);
// p_View->m_xStart=x1;
// VPtoDP(x1,y1,&p_View->m_xStart,&p_View->m_yStart);
// p_View->m_yStart=y1;
// m_pShape->Draw(pView->GetDC());
m_nClick = 0;
ReleaseCapture();
p_View->Invalidate();
return;
}
CTool::OnLButtonDown(pView, nFlags, point);
}
////////////////////////////////////////////////////////////////////////////////
CToolZoomIn::CToolZoomIn():CTool(ttZoomIn)
{
m_nClick=0;
}
CToolZoomIn::~CToolZoomIn()
{
}
void CToolZoomIn::OnLButtonDblClk(CDrawInPDAView *pView, UINT nFlags, const CPoint &point)
{
CTool::OnLButtonDblClk(pView, nFlags, point);
}
void CToolZoomIn::OnLButtonUp(CDrawInPDAView *pView, UINT nFlags, const CPoint &point)
{
CTool::OnLButtonUp(pView, nFlags, point);
}
void CToolZoomIn::OnMouseMove(CDrawInPDAView *pView, UINT nFlags, const CPoint &point)
{ CDC* pDC;
pDC = pView->GetDC();
pDC->SetROP2(R2_NOT);
if( m_nClick != 0 )
{
pDC->MoveTo(c_DownPoint);
pDC->LineTo(c_DownPoint.x,c_LastPoint.y);
pDC->LineTo(c_LastPoint);
pDC->LineTo(c_LastPoint.x,c_DownPoint.y);
pDC->LineTo(c_DownPoint);
pDC->MoveTo(c_DownPoint);
pDC->LineTo(c_DownPoint.x,point.y);
pDC->LineTo(point);
pDC->LineTo(point.x,c_DownPoint.y);
pDC->LineTo(c_DownPoint);
}
CTool::OnMouseMove(pView, nFlags, point);
}
void CToolZoomIn::OnLButtonDown(CDrawInPDAView *pView, UINT nFlags, const CPoint &point)
{ int x1,y1,x2,y2;
m_nClick++;
if( m_nClick == 1 )
{
mPointOrign=point;
}
else if( m_nClick == 2)
{
mPointOld= point;
// pView->GetDocument()->ShapeAdd(m_pShape);
x1=min(mPointOrign.x,mPointOld.x);
y1=min(mPointOrign.y,mPointOld.y);
x2=max(mPointOrign.x,mPointOld.x);
y2=max(mPointOrign.y,mPointOld.y);
pView->VPtoDP(int(x1),int(y1),&p_View->m_xStart,&p_View->m_yStart);
float blc1=(float)(p_View->m_wScreen/(x2-x1));
float blc2=(float)(p_View->m_hScreen/(y2-y1));
if (blc2<blc1) blc1=blc2;
p_View->blc=p_View->blc*blc1;
// blc1=blc2; m_xStart1,m_yStart1;
// p_View->blc=float(p_View->blc/blc1);
// p_View->m_xStart=x1;
// VPtoDP(x1,y1,&p_View->m_xStart,&p_View->m_yStart);
// p_View->m_yStart=y1;
// m_pShape->Draw(pView->GetDC());
m_nClick = 0;
ReleaseCapture();
p_View->Invalidate();
return;
}
CTool::OnLButtonDown(pView, nFlags, point);
}
///////////////////////////////////////////////////////////////////////////////////////////
CToolMove::CToolMove():CTool(ttMove)
{
m_nClick=0;
}
CToolMove::~CToolMove()
{
}
void CToolMove::OnLButtonDblClk(CDrawInPDAView *pView, UINT nFlags, const CPoint &point)
{
CTool::OnLButtonDblClk(pView, nFlags, point);
}
void CToolMove::OnLButtonUp(CDrawInPDAView *pView, UINT nFlags, const CPoint &point)
{
float x,y;
x=(mPointOrign.x-point.x)*p_View->blc;
y=(mPointOrign.y-point.y)*p_View->blc;
p_View->m_xStart+=x;
p_View->m_yStart+=y;
ReleaseCapture();
p_View->Invalidate();
CTool::OnLButtonUp(pView, nFlags, point);
}
void CToolMove::OnMouseMove(CDrawInPDAView *pView, UINT nFlags, const CPoint &point)
{
CTool::OnMouseMove(pView, nFlags, point);
}
void CToolMove::OnLButtonDown(CDrawInPDAView *pView, UINT nFlags, const CPoint &point)
{
m_nClick++;
if( m_nClick == 1 )
{
mPointOrign=point;
}
m_nClick =0;
CTool::OnLButtonDown(pView, nFlags, point);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -