// SetSaveLineID.cpp : implementation file #include "stdafx.h" #include "SetSaveLineID.h" #include "afxdialogex.h" #include #include #include #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CSetSaveLineID dialog CSetSaveLineID::CSetSaveLineID(CWnd* pParent /*=NULL*/) : CBCGPDialog(CSetSaveLineID::IDD, pParent) { EnableVisualManagerStyle(TRUE, TRUE); //{{AFX_DATA_INIT(CSetSaveLineID) m_lineProperty = 1; //}}AFX_DATA_INIT m_strFlyLineName = _T(""); //航线编号 m_designLineID = 0; m_LineHgt = 1500; m_bCheck = false; m_bClosedLine = 1; } void CSetSaveLineID::DoDataExchange(CDataExchange* pDX) { CBCGPDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CSetSaveLineID) DDX_Control(pDX, IDC_COMBO_LINEID, m_comboLineID); DDX_Radio(pDX, IDC_RADIO_LINE, m_lineProperty); DDX_Text(pDX, IDC_EDIT_LHGT, m_LineHgt); //}}AFX_DATA_MAP DDX_Control(pDX, IDC_COMBO_LINECE, m_LineCE); //DDV_MinMaxDouble(pDX, m_LineHgt, 0.001, 99999.999); DDX_Control(pDX, IDC_EDIT_LHGT, heightEdit); } BEGIN_MESSAGE_MAP(CSetSaveLineID, CBCGPDialog) //{{AFX_MSG_MAP(CSetSaveLineID) ON_CBN_SELCHANGE(IDC_COMBO_LINEID, OnSelchangeComboLineid) //}}AFX_MSG_MAP ON_BN_CLICKED(IDOK, CSetSaveLineID::OnBnClickedOk) //ON_BN_CLICKED(IDC_RADIO3, &CSetSaveLineID::OnBnClickedRadio3) // ON_EN_CHANGE(IDC_EDIT_LHGT, &CSetSaveLineID::OnEnChangeEditLhgt) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CSetSaveLineID message handlers void CSetSaveLineID::OnSelchangeComboLineid() { UpdateData(TRUE); //航线编号 m_designLineID = m_comboLineID.GetCurSel()+1; //2023.0616 ////航线文件名称 //m_strFlyLineName = GetFlyLineName(m_designLineID); // ////判断文件是否存在 /*if (SearchDirectory(m_strFlyLineName)) { if ( BCGPMessageBox( "已经存在该文件,是否覆盖?", MB_ICONQUESTION + MB_YESNO ) == IDYES ) {*/ GetDlgItem(IDOK)->EnableWindow(TRUE);//2023.0616 //发送到主程序,判断是否已经显示了 if (g_viewHwnd != NULL) { ::PostMessage(g_viewHwnd, WM_CHECK_FLY_LINE_STATUS, WPARAM(m_designLineID), 0); } //2023.0616 /*} else { m_strFlyLineName = _T(""); GetDlgItem(IDOK)->EnableWindow(FALSE); } } else { GetDlgItem(IDOK)->EnableWindow(TRUE); }*/ //2023.0616 } BOOL CSetSaveLineID::OnInitDialog() { CBCGPDialog::OnInitDialog(); CString str = _T(""); int i = 0; for (i=0; i<5; ++i) { str.Format(_T("%d"), i+1); m_comboLineID.InsertString(i, str); } m_comboLineID.InsertString(i, _T("应急航线")); m_comboLineID.InsertString(i+1, _T("电子围栏")); GetDlgItem(IDOK)->EnableWindow(FALSE); m_LineCE.InsertString(0,_T("开合")); m_LineCE.InsertString(1,_T("闭合")); //GetDlgItem(IDC_RADIO3)->EnableWindow(TRUE); if (g_b981CDesktop) { /* ((CButton *)GetDlgItem(IDC_RADIO3))->SetCheck(true); m_bCheck = true;*/ m_LineCE.SetCurSel(1); } else { /* ((CButton *)GetDlgItem(IDC_RADIO3))->SetCheck(false); m_bCheck = false;*/ m_LineCE.SetCurSel(0); } return TRUE; // return TRUE unless you set the focus to a control // 异常: OCX 属性页应返回 FALSE } void CSetSaveLineID::OnBnClickedOk() { //航线编号 //m_designLineID = m_comboLineID.GetCurSel()+1; m_designLineID = GetLineID(); m_bClosedLine = m_LineCE.GetCurSel(); // 判断高度输入是否有效. 整数部分不超过5位数,小数点后1-3位,正数 string str = "^\\d{0,5}(\\.\\d{1,2})?$"; regex heightCheck(str); CString strHeight; heightEdit.GetWindowTextA(strHeight); char* temp = strHeight.GetBuffer(strHeight.GetLength()); string asHeight = temp; bool isNumber = regex_match(asHeight,heightCheck); if(!isNumber){ BCGPMessageBox("高度设置不合法,请输入0-99999.99之间的数字"); return; } CBCGPDialog::OnOK(); } /* void CSetSaveLineID::OnBnClickedRadio3() { if (!m_bCheck) { ((CButton *)GetDlgItem(IDC_RADIO3))->SetCheck(true); m_bCheck = true; } else { ((CButton *)GetDlgItem(IDC_RADIO3))->SetCheck(false); m_bCheck = false; } }*/ //获取航线ID int CSetSaveLineID::GetLineID() { CString str; m_comboLineID.GetWindowTextA(str); if (g_b981ADesktop || g_b981APad) { if (str=="应急航线") { return 11; } else if (str=="电子围栏") { return 12; } else { return _ttoi(str); } } if (g_b981CDesktop) { if (str=="应急航线") { return 7; } else if (str=="电子围栏") { return 6; } else { return _ttoi(str); } } }