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

📄 editorview.cpp

📁 Embedded vc++下开发的可编辑地图程序
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		m_MapWnd.Refresh();	
	}
}

void CEditorView::OnAddPoint() 
{//设置或取消用户操作为添加点对象
	if( m_MapWnd.GetAction() == CSeDrawParameters::uaEditCreatePoint  )
	{
		m_MapWnd.SetAction( CSeDrawParameters::uaNull );
	}
	else
	{
		m_MapWnd.SetAction( CSeDrawParameters::uaEditCreatePoint );
	}
}

void CEditorView::OnAddLine() 
{//设置或取消用户操作为添加线对象
	if( m_MapWnd.GetAction() == CSeDrawParameters::uaEditCreateLine  )
	{
		m_MapWnd.SetAction( CSeDrawParameters::uaNull );
	}
	else
	{
		m_MapWnd.SetAction( CSeDrawParameters::uaEditCreateLine );
	}
}

void CEditorView::OnAddPolygon() 
{//设置或取消用户操作为添加面对象
	if( m_MapWnd.GetAction() == CSeDrawParameters::uaEditCreatePolygon  )
	{
		m_MapWnd.SetAction( CSeDrawParameters::uaNull );
	}
	else
	{
		m_MapWnd.SetAction( CSeDrawParameters::uaEditCreatePolygon );
	}
}

void CEditorView::OnAddText() 
{//设置或取消用户操作为添加文本对象
	if( m_MapWnd.GetAction() == CSeDrawParameters::uaEditCreateText  )
	{
		m_MapWnd.SetAction( CSeDrawParameters::uaNull );
	}
	else
	{
		m_MapWnd.SetAction( CSeDrawParameters::uaEditCreateText );
	}
}

void CEditorView::OnEditText() 
{//设置或取消用户操作为编辑文本对象
	if( m_MapWnd.GetAction() == CSeDrawParameters::uaEditEditText  )
	{
		m_MapWnd.SetAction( CSeDrawParameters::uaNull );
	}
	else
	{
		m_MapWnd.SetAction( CSeDrawParameters::uaEditEditText );
		//初始化文本风格
		if( !m_MapWnd.InitialEditTextStyle() )
		{
			CSeLayer* pEditLayer = m_MapWnd.GetLayer( m_strEditableLayer );
			if( pEditLayer )
			{
				CSeDataset *pEditDataset = pEditLayer->GetDataset();
				if( pEditDataset && pEditDataset->GetType() == CSeDatasetInfo::Text )
				{
					//设置编辑的文本风格和当前数据集风格相同
					( (CSeStyleText*)(pEditLayer->m_pStyle) )->SetFixedSizeFlag( true );
					m_MapWnd.SetEditTextStyle( *((CSeStyleText*)pEditLayer->m_pStyle) );
				}
			}
		}
	}
}

void CEditorView::OnDeleteObject() 
{//设置或取消用户操作为删除对象
	if( m_MapWnd.GetAction() == CSeDrawParameters::uaEditDelete  )
	{
		m_MapWnd.SetAction( CSeDrawParameters::uaNull );
	}
	else
	{
		m_MapWnd.SetAction( CSeDrawParameters::uaEditDelete );
	}
}

void CEditorView::OnMoveObject() 
{//设置或取消用户操作为移动对象
	if( m_MapWnd.GetAction() == CSeDrawParameters::uaEditMove  )
	{
		m_MapWnd.SetAction( CSeDrawParameters::uaNull );
	}
	else
	{
		m_MapWnd.SetAction( CSeDrawParameters::uaEditMove );
	}
}

void CEditorView::OnAddVertex() 
{//设置或取消用户操作为添加节点
	if( m_MapWnd.GetAction() == CSeDrawParameters::uaEditVertexAdd  )
	{
		m_MapWnd.SetAction( CSeDrawParameters::uaNull );
	}
	else
	{
		m_MapWnd.SetAction( CSeDrawParameters::uaEditVertexAdd );
	}
}

void CEditorView::OnDeleteVertex() 
{//设置或取消用户操作为删除节点
	if( m_MapWnd.GetAction() == CSeDrawParameters::uaEditVertexDelete  )
	{
		m_MapWnd.SetAction( CSeDrawParameters::uaNull );
	}
	else
	{
		m_MapWnd.SetAction( CSeDrawParameters::uaEditVertexDelete );
	}
}

void CEditorView::OnEditVertex() 
{//设置或取消用户操作为编辑节点
	if( m_MapWnd.GetAction() == CSeDrawParameters::uaEditVertexEdit  )
	{
		m_MapWnd.SetAction( CSeDrawParameters::uaNull );
	}
	else
	{
		m_MapWnd.SetAction( CSeDrawParameters::uaEditVertexEdit );
	}
}

void CEditorView::OnUpdateAddPoint(CCmdUI* pCmdUI) 
{//点数据集,添加点对象菜单才有效
	CSeLayer *pLayer = m_MapWnd.GetLayer( m_strEditableLayer );
	if( pLayer != NULL )
	{
		CSeDatasetVector *pDtV = ( CSeDatasetVector * )( pLayer->GetDataset() );
		pCmdUI->Enable( pDtV->GetType() == CSeDatasetInfo::Point );		
	}
	else
	{
		pCmdUI->Enable( false );
	}
	pCmdUI->SetCheck( m_MapWnd.GetAction() == CSeDrawParameters::uaEditCreatePoint );
}

void CEditorView::OnUpdateAddLine(CCmdUI* pCmdUI) 
{//线数据集,添加线对象菜单才有效
	CSeLayer *pLayer = m_MapWnd.GetLayer( m_strEditableLayer );
	if( pLayer != NULL )
	{
		CSeDatasetVector *pDtV = ( CSeDatasetVector * )( pLayer->GetDataset() );
		pCmdUI->Enable( pDtV->GetType() == CSeDatasetInfo::Line );		
	}
	else
	{
		pCmdUI->Enable( false );
	}
	pCmdUI->SetCheck(m_MapWnd.GetAction()==CSeDrawParameters::uaEditCreateLine );		
}

void CEditorView::OnUpdateAddPolygon(CCmdUI* pCmdUI) 
{	//面数据集,添加面对象菜单才有效
	CSeLayer *pLayer = m_MapWnd.GetLayer( m_strEditableLayer );
	if( pLayer != NULL )
	{
		CSeDatasetVector *pDtV = ( CSeDatasetVector * )( pLayer->GetDataset() );
		pCmdUI->Enable( pDtV->GetType() == CSeDatasetInfo::Region );		
	}
	else
	{
		pCmdUI->Enable( false );
	}
	pCmdUI->SetCheck(m_MapWnd.GetAction()==CSeDrawParameters::uaEditCreatePolygon );		
}

void CEditorView::OnUpdateAddText(CCmdUI* pCmdUI) 
{//文本或简单文本图层,添加文本对象菜单才有效
	CSeLayer *pLayer = m_MapWnd.GetLayer( m_strEditableLayer );
	if( pLayer != NULL )
	{
		CSeDatasetVector *pDtV = ( CSeDatasetVector * )( pLayer->GetDataset() );
		pCmdUI->Enable( pDtV->GetType() == CSeDatasetInfo::Text || pDtV->GetType() == CSeDatasetInfo::SimpleText );		
	}
	else
	{
		pCmdUI->Enable( false );
	}
	pCmdUI->SetCheck(m_MapWnd.GetAction()==CSeDrawParameters::uaEditCreateText );		
}

void CEditorView::OnUpdateEditText(CCmdUI* pCmdUI) 
{//文本或简单文本图层,编辑文本对象菜单才有效
	CSeLayer *pLayer = m_MapWnd.GetLayer( m_strEditableLayer );
	if( pLayer != NULL )
	{
		CSeDatasetVector *pDtV = ( CSeDatasetVector * )( pLayer->GetDataset() );
		pCmdUI->Enable( pDtV->GetType() == CSeDatasetInfo::Text );		
	}
	else
	{
		pCmdUI->Enable( false );
	}
	pCmdUI->SetCheck(m_MapWnd.GetAction()==CSeDrawParameters::uaEditEditText );		
}

void CEditorView::OnUpdateDeleteObject(CCmdUI* pCmdUI) 
{//设置删除对象菜单是否有效
	CSeLayer *pLayer = m_MapWnd.GetLayer( m_strEditableLayer );
	
	if( pLayer != NULL )
	{
		CSeDatasetVector *pDtV = ( CSeDatasetVector * )( pLayer->GetDataset() );
		pCmdUI->Enable( pDtV->GetType() != CSeDatasetInfo::Network && 
			pDtV->GetType() != CSeDatasetInfo::ImageOuter && 
			pDtV->GetType() != CSeDatasetInfo::ImageIS );		
	}
	else
	{
		pCmdUI->Enable( false );
	}
	pCmdUI->SetCheck(m_MapWnd.GetAction()==CSeDrawParameters::uaEditDelete );		
}

void CEditorView::OnUpdateMoveObject(CCmdUI* pCmdUI) 
{//设置移动对象菜单是否有效
	CSeLayer *pLayer = m_MapWnd.GetLayer( m_strEditableLayer );
	if( pLayer != NULL )
	{
		CSeDatasetVector *pDtV = ( CSeDatasetVector * )( pLayer->GetDataset() );
		pCmdUI->Enable( pDtV->GetType() != CSeDatasetInfo::Network && 
			pDtV->GetType() != CSeDatasetInfo::ImageOuter && 
			pDtV->GetType() != CSeDatasetInfo::ImageIS );		
	}
	else
	{
		pCmdUI->Enable( false );
	} 
	pCmdUI->SetCheck(m_MapWnd.GetAction()==CSeDrawParameters::uaEditMove );		
}

void CEditorView::OnUpdateAddVertex(CCmdUI* pCmdUI) 
{//线数据集和面数据集,添加节点菜单才有效
	CSeLayer *pLayer = m_MapWnd.GetLayer( m_strEditableLayer );
	if( pLayer != NULL )
	{
		CSeDatasetVector *pDtV = ( CSeDatasetVector * )( pLayer->GetDataset() );
		pCmdUI->Enable( pDtV->GetType() == CSeDatasetInfo::Line ||
					    pDtV->GetType() == CSeDatasetInfo::Region );		
	}
	else
	{
		pCmdUI->Enable( false );
	}
	pCmdUI->SetCheck(m_MapWnd.GetAction()==CSeDrawParameters::uaEditVertexAdd );		
}

void CEditorView::OnUpdateDeleteVertex(CCmdUI* pCmdUI) 
{//线数据集和面数据集,删除节点菜单才有效
	CSeLayer *pLayer = m_MapWnd.GetLayer( m_strEditableLayer );
	if( pLayer != NULL )
	{
		CSeDatasetVector *pDtV = ( CSeDatasetVector * )( pLayer->GetDataset() );
		pCmdUI->Enable( pDtV->GetType() == CSeDatasetInfo::Line ||
					    pDtV->GetType() == CSeDatasetInfo::Region );		
	}
	else
	{
		pCmdUI->Enable( false );
	}
	pCmdUI->SetCheck(m_MapWnd.GetAction()==CSeDrawParameters::uaEditVertexDelete );		
}

void CEditorView::OnUpdateEditVertex(CCmdUI* pCmdUI) 
{//线数据集和面数据集,编辑节点菜单才有效
	CSeLayer *pLayer = m_MapWnd.GetLayer( m_strEditableLayer );
	if( pLayer != NULL )
	{
		CSeDatasetVector *pDtV = ( CSeDatasetVector * )( pLayer->GetDataset() );
		pCmdUI->Enable( pDtV->GetType() == CSeDatasetInfo::Line ||
					    pDtV->GetType() == CSeDatasetInfo::Region );		
	}
	else
	{
		pCmdUI->Enable( false );
	}
	pCmdUI->SetCheck(m_MapWnd.GetAction()==CSeDrawParameters::uaEditVertexEdit );		
}

void CEditorView::OnLButtonDblClk(UINT nFlags, CPoint point) 
{//双击鼠标重载
	m_MapWnd.OnLButtonDblClk(nFlags, point);
	CView::OnLButtonDblClk(nFlags, point);
}

void CEditorView::OnLButtonDown(UINT nFlags, CPoint point) 
{//鼠标左键按下重载
	CView::OnLButtonDown(nFlags, point);	
	m_MapWnd.OnLButtonDown(nFlags, point);	
}

void CEditorView::OnLButtonUp(UINT nFlags, CPoint point) 
{//鼠标左键弹起重载
	m_MapWnd.OnLButtonUp(nFlags, point);	
	CView::OnLButtonUp(nFlags, point);
}

void CEditorView::OnInitialUpdate() 
{//初始化地图窗口
	m_MapWnd.OnInitialUpdate( &theApp.m_WorkSpace, this );
	CView::OnInitialUpdate();
}

⌨️ 快捷键说明

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