📄 editorview.cpp
字号:
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 + -