You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

238 lines
5.1 KiB
C++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

// SetSaveLineID.cpp : implementation file
#include "stdafx.h"
#include "SetSaveLineID.h"
#include "afxdialogex.h"
#include <iostream>
#include <cstdio>
#include <regex>
#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;
m_bCheckMultiLine = false;
}
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)
ON_BN_CLICKED(IDC_RADIO_MultiRoute, &CSetSaveLineID::OnBnClickedRadioMultiroute)
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);
}
}
}
//选择批量航线
void CSetSaveLineID::OnBnClickedRadioMultiroute()
{
if (!m_bCheckMultiLine)
{
((CButton *)GetDlgItem(IDC_RADIO_MultiRoute))->SetCheck(true);
m_bCheckMultiLine = true;
}
else
{
((CButton *)GetDlgItem(IDC_RADIO_MultiRoute))->SetCheck(false);
m_bCheckMultiLine = false;
}
}