|
|
|
@ -195,7 +195,7 @@ CGISDlg::CGISDlg(CWnd* pParent /*=NULL*/)
|
|
|
|
|
{
|
|
|
|
|
m_subLineLayerID[i][j]=-1;
|
|
|
|
|
m_subLinePtLayerID[i][j]=-1;
|
|
|
|
|
m_pHaveDrawCopyLineFlag[i][j] = -1;
|
|
|
|
|
m_pHaveDrawCopyLineFlag[i][j] = false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
m_bShowCopyLine = false;
|
|
|
|
@ -305,7 +305,7 @@ CGISDlg::CGISDlg(CWnd* pParent /*=NULL*/)
|
|
|
|
|
m_ppPlanLineShpLayerIDArr[i][j] = -1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
m_line14FlyID = -1;
|
|
|
|
|
//航线是否已经标绘的标志
|
|
|
|
|
for (i=0; i<14; i++)
|
|
|
|
|
{
|
|
|
|
@ -1358,7 +1358,58 @@ void CGISDlg::OnShowRMenu()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//当处于回放模式时,设置、导引操作、航线装订子菜单都先灰色
|
|
|
|
|
menu.LoadMenu(IDR_MENU2);
|
|
|
|
|
menu.LoadMenu(IDR_MENU2);
|
|
|
|
|
|
|
|
|
|
if (g_b981ADesktop || g_b981APad)
|
|
|
|
|
{
|
|
|
|
|
// 获取子菜单
|
|
|
|
|
CMenu* pSubMenu = menu.GetSubMenu(0); // 第一个子菜单
|
|
|
|
|
//int nn = pSubMenu->GetMenuItemCount();
|
|
|
|
|
|
|
|
|
|
if (pSubMenu)
|
|
|
|
|
{
|
|
|
|
|
pSubMenu->ModifyMenu(5, MF_BYPOSITION | MF_DISABLED | MF_GRAYED); //隐藏高程分析
|
|
|
|
|
pSubMenu->ModifyMenu(7, MF_BYPOSITION | MF_DISABLED | MF_GRAYED); //隐藏标绘
|
|
|
|
|
|
|
|
|
|
// 获取二级子菜单
|
|
|
|
|
CMenu* pSubSubMenu = pSubMenu->GetSubMenu(2); // 二级子菜单(航线子项)
|
|
|
|
|
//int nn2 = pSubSubMenu->GetMenuItemCount();
|
|
|
|
|
if (pSubSubMenu)
|
|
|
|
|
{
|
|
|
|
|
// 隐藏二级子菜单的第一个子项
|
|
|
|
|
//pSubSubMenu->ModifyMenu(IDM_SHOW_LINE14, MF_BYPOSITION | MF_DISABLED | MF_GRAYED); //隐藏空投航线
|
|
|
|
|
pSubSubMenu->RemoveMenu(IDM_SHOW_LINE14, MF_BYCOMMAND); //隐藏空投航线
|
|
|
|
|
|
|
|
|
|
// 修改二级子菜单文本
|
|
|
|
|
pSubMenu->ModifyMenu(ID_BIND_BACKLINE, MF_STRING, ID_BIND_BACKLINE, _T("自主着陆点装订"));
|
|
|
|
|
pSubMenu->ModifyMenu(ID_SHOW_BACKLINE, MF_STRING, ID_SHOW_BACKLINE, _T("自主着陆点显示"));
|
|
|
|
|
//航线14 回收航线
|
|
|
|
|
/*
|
|
|
|
|
if (m_pHaveDrawLineFlag[13])
|
|
|
|
|
{
|
|
|
|
|
pSubMenu->CheckMenuItem( ID_SHOW_BACKLINE, MF_BYCOMMAND | MF_CHECKED );
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
pSubMenu->CheckMenuItem( ID_SHOW_BACKLINE, MF_BYCOMMAND | MF_UNCHECKED );
|
|
|
|
|
}*/
|
|
|
|
|
if (g_b981AMulti && m_line14FlyID >0)
|
|
|
|
|
{
|
|
|
|
|
if (m_pHaveDrawCopyLineFlag[13][m_line14FlyID-1])
|
|
|
|
|
{
|
|
|
|
|
menu.CheckMenuItem( ID_SHOW_BACKLINE, MF_BYCOMMAND | MF_CHECKED );
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
menu.CheckMenuItem( ID_SHOW_BACKLINE, MF_BYCOMMAND | MF_UNCHECKED );
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
DrawMenuBar();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//设置限制区勾选状态
|
|
|
|
|
SetMenuZoneCheck(menu);
|
|
|
|
|
|
|
|
|
@ -1463,14 +1514,17 @@ void CGISDlg::OnShowRMenu()
|
|
|
|
|
|
|
|
|
|
if (g_b981ADesktop || g_b981APad)
|
|
|
|
|
{
|
|
|
|
|
//航线14 回收航线
|
|
|
|
|
if (m_pHaveDrawLineFlag[13])
|
|
|
|
|
if (!g_b981AMulti)
|
|
|
|
|
{
|
|
|
|
|
menu.CheckMenuItem( ID_SHOW_BACKLINE, MF_BYCOMMAND | MF_CHECKED );
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
menu.CheckMenuItem( ID_SHOW_BACKLINE, MF_BYCOMMAND | MF_UNCHECKED );
|
|
|
|
|
//航线14 回收航线
|
|
|
|
|
if (m_pHaveDrawLineFlag[13])
|
|
|
|
|
{
|
|
|
|
|
menu.CheckMenuItem( ID_SHOW_BACKLINE, MF_BYCOMMAND | MF_CHECKED );
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
menu.CheckMenuItem( ID_SHOW_BACKLINE, MF_BYCOMMAND | MF_UNCHECKED );
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//航线11 应急航线
|
|
|
|
@ -1588,44 +1642,6 @@ void CGISDlg::OnShowRMenu()
|
|
|
|
|
|
|
|
|
|
//menu.GetSubMenu(0)->ModifyMenu(0, MF_BYPOSITION | MF_DISABLED | MF_GRAYED);
|
|
|
|
|
|
|
|
|
|
if (g_b981ADesktop || g_b981APad)
|
|
|
|
|
{
|
|
|
|
|
// 获取子菜单
|
|
|
|
|
CMenu* pSubMenu = menu.GetSubMenu(0); // 第一个子菜单
|
|
|
|
|
//int nn = pSubMenu->GetMenuItemCount();
|
|
|
|
|
|
|
|
|
|
if (pSubMenu)
|
|
|
|
|
{
|
|
|
|
|
pSubMenu->ModifyMenu(5, MF_BYPOSITION | MF_DISABLED | MF_GRAYED); //隐藏高程分析
|
|
|
|
|
pSubMenu->ModifyMenu(7, MF_BYPOSITION | MF_DISABLED | MF_GRAYED); //隐藏标绘
|
|
|
|
|
|
|
|
|
|
// 获取二级子菜单
|
|
|
|
|
CMenu* pSubSubMenu = pSubMenu->GetSubMenu(2); // 二级子菜单(航线子项)
|
|
|
|
|
//int nn2 = pSubSubMenu->GetMenuItemCount();
|
|
|
|
|
if (pSubSubMenu)
|
|
|
|
|
{
|
|
|
|
|
// 隐藏二级子菜单的第一个子项
|
|
|
|
|
//pSubSubMenu->ModifyMenu(IDM_SHOW_LINE14, MF_BYPOSITION | MF_DISABLED | MF_GRAYED); //隐藏空投航线
|
|
|
|
|
pSubSubMenu->RemoveMenu(IDM_SHOW_LINE14, MF_BYCOMMAND); //隐藏空投航线
|
|
|
|
|
|
|
|
|
|
// 修改二级子菜单文本
|
|
|
|
|
pSubMenu->ModifyMenu(ID_BIND_BACKLINE, MF_STRING, ID_BIND_BACKLINE, _T("自主着陆点装订"));
|
|
|
|
|
pSubMenu->ModifyMenu(ID_SHOW_BACKLINE, MF_STRING, ID_SHOW_BACKLINE, _T("自主着陆点显示"));
|
|
|
|
|
//航线14 回收航线
|
|
|
|
|
if (m_pHaveDrawLineFlag[13])
|
|
|
|
|
{
|
|
|
|
|
pSubMenu->CheckMenuItem( ID_SHOW_BACKLINE, MF_BYCOMMAND | MF_CHECKED );
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
pSubMenu->CheckMenuItem( ID_SHOW_BACKLINE, MF_BYCOMMAND | MF_UNCHECKED );
|
|
|
|
|
}
|
|
|
|
|
DrawMenuBar();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//弹出快捷菜单
|
|
|
|
|
menu.GetSubMenu( 0 )->TrackPopupMenu( TPM_LEFTALIGN | TPM_RIGHTBUTTON, pt.x, pt.y, this );
|
|
|
|
|
|
|
|
|
@ -4734,7 +4750,7 @@ void CGISDlg::DrawCopyFlyLine(const DrawLineDataStruct lineData)
|
|
|
|
|
/////////////////////往SHP图层中加入目标点标注信息///////////////////////////////
|
|
|
|
|
|
|
|
|
|
//重新绘制
|
|
|
|
|
m_map.Redraw();
|
|
|
|
|
m_map.Redraw2(mapWindow::RedrawMinimal);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -5072,7 +5088,20 @@ void CGISDlg::ClearDrawedCopyLine(const int lineID,const int sublineID)
|
|
|
|
|
void CGISDlg::SetFlyLineShowStatus(const int lineID)
|
|
|
|
|
{
|
|
|
|
|
int lineIndex = lineID - 1;
|
|
|
|
|
|
|
|
|
|
bool bMulti = false;
|
|
|
|
|
if (g_b981AMulti)
|
|
|
|
|
{
|
|
|
|
|
for (int i=0;i<255;++i)
|
|
|
|
|
{
|
|
|
|
|
if (m_pHaveDrawCopyLineFlag[lineIndex][i])
|
|
|
|
|
{
|
|
|
|
|
ClearDrawedCopyLine(lineIndex,i);
|
|
|
|
|
//m_map.Redraw();
|
|
|
|
|
m_pHaveDrawCopyLineFlag[lineIndex][i] = false;
|
|
|
|
|
bMulti = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//已经标绘,清除航线
|
|
|
|
|
if (m_pHaveDrawLineFlag[lineIndex])
|
|
|
|
|
{
|
|
|
|
@ -5080,29 +5109,14 @@ void CGISDlg::SetFlyLineShowStatus(const int lineID)
|
|
|
|
|
ClearDrawedLine(lineIndex);
|
|
|
|
|
|
|
|
|
|
//刷新
|
|
|
|
|
m_map.Redraw();
|
|
|
|
|
//m_map.Redraw();
|
|
|
|
|
|
|
|
|
|
//标识置false
|
|
|
|
|
m_pHaveDrawLineFlag[lineIndex] = false;
|
|
|
|
|
|
|
|
|
|
if (g_b981AMulti)
|
|
|
|
|
{
|
|
|
|
|
for (int i=0;i<255;++i)
|
|
|
|
|
{
|
|
|
|
|
if (m_pHaveDrawCopyLineFlag[lineIndex][i])
|
|
|
|
|
{
|
|
|
|
|
ClearDrawedCopyLine(lineIndex,i);
|
|
|
|
|
//刷新
|
|
|
|
|
m_map.Redraw2(mapWindow::RedrawMinimal);
|
|
|
|
|
//m_map.Redraw();
|
|
|
|
|
m_pHaveDrawCopyLineFlag[lineIndex][i] = false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
if(bMulti) return;
|
|
|
|
|
TCHAR filter[500]=_T("航线文件(*.txt)\0*.txt\0)");
|
|
|
|
|
|
|
|
|
|
CFileDialog LineRouteDlg(TRUE, NULL, NULL, OFN_HIDEREADONLY, filter, NULL);
|
|
|
|
@ -5132,8 +5146,9 @@ void CGISDlg::SetFlyLineShowStatus(const int lineID)
|
|
|
|
|
m_bShowCopyLine = false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
//刷新
|
|
|
|
|
m_map.Redraw2(mapWindow::RedrawMinimal);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CGISDlg::OnUpdateLineDisplay1( CCmdUI *pCmdUI )
|
|
|
|
@ -5231,8 +5246,13 @@ void CGISDlg::OnShowGivenLine(const CString strLineFileName)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
m_lineFullPathName[lineDataGroup.lineID] = strLineFileName;
|
|
|
|
|
if (lineDataGroup.pts[0].nV>0) //多机ID号
|
|
|
|
|
if (g_b981AMulti && lineDataGroup.pts[0].nV>0) //多机ID号
|
|
|
|
|
{
|
|
|
|
|
if (lineDataGroup.lineID==14)
|
|
|
|
|
{
|
|
|
|
|
m_line14FlyID = lineDataGroup.pts[0].nV;
|
|
|
|
|
SetBindLine14Coordinate(lineDataGroup.pts[0].nV,lineDataGroup.pts[0].dX,lineDataGroup.pts[0].dY);
|
|
|
|
|
}
|
|
|
|
|
//清除标绘的航线
|
|
|
|
|
ClearDrawedCopyLine(lineDataGroup.lineID-1,lineDataGroup.pts[0].nV-1);
|
|
|
|
|
|
|
|
|
@ -6260,7 +6280,12 @@ void CGISDlg::OnUpdateShowBackLine(CCmdUI *pCmdUI)
|
|
|
|
|
// TODO: 在此添加命令更新用户界面处理程序代码
|
|
|
|
|
if (g_b981ADesktop || g_b981APad)
|
|
|
|
|
{
|
|
|
|
|
pCmdUI->SetCheck(m_pHaveDrawLineFlag[13]);
|
|
|
|
|
if (g_b981AMulti && (m_line14FlyID>0)) //多机
|
|
|
|
|
{
|
|
|
|
|
pCmdUI->SetCheck(m_pHaveDrawCopyLineFlag[13][m_line14FlyID-1]);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
pCmdUI->SetCheck(m_pHaveDrawLineFlag[13]);
|
|
|
|
|
}
|
|
|
|
|
if (g_b981CDesktop)
|
|
|
|
|
{
|
|
|
|
|