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

📄 myextedittool.cpp

📁 地理信息系统(GIS)相关.实现按照方向加产状的功能.
💻 CPP
字号:
#include "StdAfx.h"
#include "MyExtEditTool.h"

//==============================================//
//-----------------"删除点"的Tool---------------//
//==============================================//
CDelGroupPointTool::CDelGroupPointTool(BASEEDVIEW pEditView) : BaseGisTool(pEditView)
{
	m_pMyEditView = (CMyEditView *)pEditView;
	ASSERT(m_pMyEditView);

	//直接利用"选择"操作的结果
	DoDelGroupPoints();
}

CDelGroupPointTool::~CDelGroupPointTool()
{
}

int CDelGroupPointTool::LButtonDown (UINT nFlags, CPoint point)
{
	//选择点实体
	if (m_pMyEditView->SelectPnt(WM_LBUTTONDOWN,nFlags,point)==1)
		DoDelGroupPoints();	
	
	return 1;
}

int CDelGroupPointTool::LButtonUp (UINT nFlags, CPoint point)
{
	//选择点实体
	if (m_pMyEditView->SelectPnt(WM_LBUTTONUP,nFlags,point)==1)
		DoDelGroupPoints();	
	
	return 1;
}

int CDelGroupPointTool::RButtonUp (UINT nFlags, CPoint point)
{
	//选择点实体
	if (m_pMyEditView->SelectPnt(WM_RBUTTONUP,nFlags,point)==1)
		DoDelGroupPoints();	
	
	return 0;
}

int CDelGroupPointTool::MouseMove (UINT nFlags, CPoint point)
{
	//选择点实体
	m_pMyEditView->SelectPnt(WM_MOUSEMOVE,nFlags,point);
	
	return 0;
}

int CDelGroupPointTool::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
	return 1;
}

void CDelGroupPointTool::DrawGraphics(MyDC mdc)
{
	
}

void CDelGroupPointTool::Reset()
{
	m_pMyEditView->ClearPool();

	//关闪 
	m_pMyEditView->_StopFlash(-1);
}

//删除点实体
void CDelGroupPointTool::DoDelGroupPoints()
{
	SELECTGRAPH *selgph=NULL;
	long lNum,li;
	MyDC mdc;

	selgph=m_pMyEditView->GetPool();
	lNum=m_pMyEditView->GetPoolNum();

	if (lNum<1)
		return;

	//将元素的DELETE_ACTION操作压栈
	m_pMyEditView->UndoTool->PushSelGraphics(selgph,lNum,DELETE_ACTION);
	mdc=m_pMyEditView->_GetMyDC();

    for(li=0;li<lNum;li++)
	{
		if (selgph[li].type!=PNT)
			continue;

		if (!db_LockPntForUpdate(selgph[li].ai,selgph[li].elmi))
			continue;

		_DispPnt(mdc,selgph[li].ai,selgph[li].elmi,m_pMyEditView->DeleteCollor);
		_DelPnt(selgph[li].ai,selgph[li].elmi);
	}

	m_pMyEditView->_DeleteMyDC(mdc);
	//清空缓冲区内容
	m_pMyEditView->ClearPool();
}			

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -