diff --git a/GISDlg.cpp b/GISDlg.cpp index d4c189c..3316bbb 100644 --- a/GISDlg.cpp +++ b/GISDlg.cpp @@ -1284,6 +1284,22 @@ void CGISDlg::OnShowRMenu() //显示快捷菜单 CMenu menu; + + //CMenu* pMenu = GetMenu(); + //if (pMenu != NULL) + //{ +/* + CMenu* pSubMenu = menu.GetSubMenu(0); + if (pSubMenu != NULL) + { + CMenu* pSubMenu2 = pSubMenu->GetSubMenu(0); + if (pSubMenu2 != NULL) + { + pSubMenu2->DeleteMenu(IDM_SHOW_LINE14, MF_BYCOMMAND); + } + }*/ + //} + POINT pt; GetCursorPos( &pt ); @@ -1425,7 +1441,7 @@ void CGISDlg::OnShowRMenu() } - if (g_b98CADesktop) + if (g_b981CDesktop) { //航线14 回收航线 if (m_pHaveDrawLineFlag[10]) @@ -1515,11 +1531,35 @@ void CGISDlg::OnShowRMenu() { menu.CheckMenuItem( ID_MENU_ADSB, MF_BYCOMMAND | MF_UNCHECKED ); } + + //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); //隐藏空投航线 + } + } + } + //弹出快捷菜单 menu.GetSubMenu( 0 )->TrackPopupMenu( TPM_LEFTALIGN | TPM_RIGHTBUTTON, pt.x, pt.y, this ); - } } @@ -1972,6 +2012,11 @@ void CGISDlg::MouseDownMap1(short Button, short Shift, long x, long y) if (addPointPos>m_editLineDataGroup.linePointNum-4) return; //回收航线屏蔽4,5,6长边不让编辑 } + if (m_editLineDataGroup.pointNum>=127) //限制最多127个点 + { + return; + } + //计算添加点坐标 double linePt1[2] = {m_editLineDataGroup.linePts[addPointPos-1].dX,m_editLineDataGroup.linePts[addPointPos-1].dY}; @@ -2038,6 +2083,10 @@ void CGISDlg::MouseDownMap1(short Button, short Shift, long x, long y) } if (m_bSetPointModel)//置点 { + if (m_designLinePointNum>=127) //限制最多127个航点 + { + return; + } POINT pt; GetCursorPos( &pt ); @@ -5701,7 +5750,7 @@ void CGISDlg::OnShowBackLine() { SetFlyLineShowStatus(14); } - if (g_b98CADesktop) + if (g_b981CDesktop) { SetFlyLineShowStatus(11); } @@ -5715,7 +5764,7 @@ void CGISDlg::OnUpdateShowBackLine(CCmdUI *pCmdUI) { pCmdUI->SetCheck(m_pHaveDrawLineFlag[13]); } - if (g_b98CADesktop) + if (g_b981CDesktop) { pCmdUI->SetCheck(m_pHaveDrawLineFlag[10]); } @@ -5729,7 +5778,7 @@ void CGISDlg::OnShowHs11() { SetFlyLineShowStatus(11); } - if (g_b98CADesktop) + if (g_b981CDesktop) { SetFlyLineShowStatus(7); } @@ -5744,7 +5793,7 @@ void CGISDlg::OnUpdateShowHs11(CCmdUI *pCmdUI) pCmdUI->SetCheck(m_pHaveDrawLineFlag[10]); } - if (g_b98CADesktop) + if (g_b981CDesktop) { pCmdUI->SetCheck(m_pHaveDrawLineFlag[6]); } @@ -5759,7 +5808,7 @@ void CGISDlg::OnBindHs11() { m_struMapOut.ID=11; } - if (g_b98CADesktop) + if (g_b981CDesktop) { m_struMapOut.ID=7; } @@ -5773,7 +5822,7 @@ void CGISDlg::OnShowTc12() { SetFlyLineShowStatus(12); } - if (g_b98CADesktop) + if (g_b981CDesktop) { SetFlyLineShowStatus(6); } @@ -5788,7 +5837,7 @@ void CGISDlg::OnBindTc12() { m_struMapOut.ID=12; } - if (g_b98CADesktop) + if (g_b981CDesktop) { m_struMapOut.ID=6; } @@ -5802,7 +5851,7 @@ void CGISDlg::OnUpdateShowTc12(CCmdUI *pCmdUI) { pCmdUI->SetCheck(m_pHaveDrawLineFlag[11]); } - if (g_b98CADesktop) + if (g_b981CDesktop) { pCmdUI->SetCheck(m_pHaveDrawLineFlag[5]); } @@ -5831,7 +5880,7 @@ void CGISDlg::OnBindBackLine() { m_struMapOut.ID=14; } - if (g_b98CADesktop) + if (g_b981CDesktop) { m_struMapOut.ID=11; } diff --git a/Globe.cpp b/Globe.cpp index 52f3005..ee64dda 100644 --- a/Globe.cpp +++ b/Globe.cpp @@ -234,4 +234,4 @@ bool g_bMarkerPlot[g_iMarkerPtNum] = {false}; -------------------------------------------------------------------------------------------------------------*/ bool g_b981ADesktop = true; bool g_b981APad = false; -bool g_b98CADesktop = false; \ No newline at end of file +bool g_b981CDesktop = false; \ No newline at end of file diff --git a/Globe.h b/Globe.h index 1cb2a38..987d3c7 100644 --- a/Globe.h +++ b/Globe.h @@ -272,6 +272,6 @@ extern bool g_bMarkerPlot[g_iMarkerPtNum]; -------------------------------------------------------------------------------------------------------------*/ extern bool g_b981ADesktop; // 981A电脑端 extern bool g_b981APad; // 981A平板端 -extern bool g_b98CADesktop; // 981C电脑端 +extern bool g_b981CDesktop; // 981C电脑端 #endif \ No newline at end of file diff --git a/ModifyLinePointDlg.cpp b/ModifyLinePointDlg.cpp index 57b464a..7ee08c5 100644 --- a/ModifyLinePointDlg.cpp +++ b/ModifyLinePointDlg.cpp @@ -341,7 +341,7 @@ void CModifyLinePointDlg::OnEnKillfocusEditLon() bool b = checkLon(cstr.GetBuffer(),typeID); if (!b) { - BCGPMessageBox("经度范围或格式有误,请重新输入!"); + //BCGPMessageBox("经度范围或格式有误,请重新输入!"); m_strLon.SetFocus(); } @@ -358,7 +358,7 @@ void CModifyLinePointDlg::OnEnKillfocusEditLat() bool b = checkLat(cstr.GetBuffer(),typeID); if (!b) { - BCGPMessageBox("纬度范围或格式有误,请重新输入!"); + //BCGPMessageBox("纬度范围或格式有误,请重新输入!"); m_strLat.SetFocus(); } diff --git a/SetSaveLineID.cpp b/SetSaveLineID.cpp index c308eae..439a5bc 100644 --- a/SetSaveLineID.cpp +++ b/SetSaveLineID.cpp @@ -117,7 +117,7 @@ BOOL CSetSaveLineID::OnInitDialog() m_LineCE.InsertString(0,_T("开合")); m_LineCE.InsertString(1,_T("闭合")); //GetDlgItem(IDC_RADIO3)->EnableWindow(TRUE); - if (g_b98CADesktop) + if (g_b981CDesktop) { /* ((CButton *)GetDlgItem(IDC_RADIO3))->SetCheck(true); @@ -184,7 +184,7 @@ int CSetSaveLineID::GetLineID() } } - if (g_b98CADesktop) + if (g_b981CDesktop) { if (str=="应急航线") {