⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 toolzoomout.cpp

📁 在PDA中的画图程序
💻 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 + -