|
|
// CFlyLineDesign.cpp: 实现文件
|
|
|
//
|
|
|
|
|
|
#include "stdafx.h"
|
|
|
#include "FlyLineDesign.h"
|
|
|
#include "SetSaveLineID.h"
|
|
|
#include "Globe.h"
|
|
|
#include "LineDesign.h"
|
|
|
// CFlyLineDesign 对话框
|
|
|
|
|
|
|
|
|
CFlyLineDesign::CFlyLineDesign(CWnd* pParent /*=NULL*/)
|
|
|
: CDialog(CFlyLineDesign::IDD, pParent)
|
|
|
{
|
|
|
InitiazeAllMembers();
|
|
|
|
|
|
//总的航点个数
|
|
|
m_totalPtNums = 255;
|
|
|
|
|
|
//航线数据集合
|
|
|
m_pLinePts = new PtStruct[m_totalPtNums];
|
|
|
memset(m_pLinePts, 0, sizeof(PtStruct)*m_totalPtNums);
|
|
|
|
|
|
//航点模式为“置点”
|
|
|
g_ptModeInLineDesign = 0;
|
|
|
}
|
|
|
|
|
|
CFlyLineDesign::~CFlyLineDesign()
|
|
|
{
|
|
|
if (m_pLinePts != NULL)
|
|
|
{
|
|
|
delete []m_pLinePts;
|
|
|
m_pLinePts = NULL;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
void CFlyLineDesign::DoDataExchange(CDataExchange* pDX)
|
|
|
{
|
|
|
CDialog::DoDataExchange(pDX);
|
|
|
DDX_Text(pDX, IDC_EDIT_ALT, m_ptAlt);
|
|
|
DDV_MinMaxDouble(pDX, m_ptAlt, 0, 5000);
|
|
|
DDX_Text(pDX, IDC_EDIT_LAT, m_ptLat);
|
|
|
DDV_MinMaxDouble(pDX, m_ptLat, -90.0, 90.0);
|
|
|
DDX_Text(pDX, IDC_EDIT_LON, m_ptLon);
|
|
|
DDV_MinMaxDouble(pDX, m_ptLon, -180.0, 180.0);
|
|
|
DDX_Text(pDX, IDC_EDIT_STAY_TIME, m_flySpeed);
|
|
|
|
|
|
DDX_Control(pDX, IDC_COMBO_PT, m_comboPt);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CFlyLineDesign, CDialog)
|
|
|
ON_BN_CLICKED(IDC_BTN_ADD_POINT, OnAddFlyLinePoint)
|
|
|
ON_BN_CLICKED(IDC_BTN_EDIT_POINT, OnEditFlyLinePoint)
|
|
|
ON_BN_CLICKED(IDC_BTN_DELETE_POINT, OnDeleteFlyLinePoint)
|
|
|
ON_BN_CLICKED(IDC_BTN_SAVE_LINE, OnSaveFlyLine)
|
|
|
ON_CBN_SELCHANGE(IDC_COMBO_PT, OnCbnSelchangeComboPt)
|
|
|
ON_BN_CLICKED(IDCANCEL, OnBnClickedCancel)
|
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//初始化所有的变量
|
|
|
void CFlyLineDesign::InitiazeAllMembers()
|
|
|
{
|
|
|
m_ptAlt = 0.0;
|
|
|
m_ptLat = 0.0;
|
|
|
m_ptLon = 0.0;
|
|
|
|
|
|
//清空航线数据集合
|
|
|
m_linePtNums = 0;
|
|
|
|
|
|
//清空当前的航点数据
|
|
|
memset(&m_curPoint, 0, sizeof(PtStruct));
|
|
|
|
|
|
m_linePtNums = 0;
|
|
|
|
|
|
//是否增加新的航点
|
|
|
m_bAddNewPoint = true;
|
|
|
}
|
|
|
|
|
|
|
|
|
//清除已有的航线数据,包括界面显示的数据
|
|
|
void CFlyLineDesign::ClearCurrentData()
|
|
|
{
|
|
|
//清空所有的变量
|
|
|
InitiazeAllMembers();
|
|
|
|
|
|
//清空组合框的数据集合
|
|
|
if (m_comboPt.GetCount() > 0)
|
|
|
{
|
|
|
m_comboPt.ResetContent();
|
|
|
}
|
|
|
|
|
|
GetDlgItem(IDC_BTN_ADD_POINT)->EnableWindow(TRUE);
|
|
|
GetDlgItem(IDC_BTN_EDIT_POINT)->EnableWindow(FALSE);
|
|
|
GetDlgItem(IDC_BTN_DELETE_POINT)->EnableWindow(FALSE);
|
|
|
GetDlgItem(IDC_BTN_SAVE_LINE)->EnableWindow(FALSE);
|
|
|
|
|
|
//刷新显示
|
|
|
UpdateData(FALSE);
|
|
|
}
|
|
|
|
|
|
|
|
|
//功能:增加新的航点
|
|
|
//输入:经度lon,纬度lat
|
|
|
void CFlyLineDesign::AddPoint(const double lon, const double lat)
|
|
|
{
|
|
|
m_curPoint.dX = lon;
|
|
|
m_curPoint.dY = lat;
|
|
|
|
|
|
//设置当前界面的数据
|
|
|
SetWindowMembersValue(m_curPoint);
|
|
|
|
|
|
UpdateData(FALSE);
|
|
|
}
|
|
|
|
|
|
|
|
|
//功能:增加新的航点
|
|
|
//输入:航点数据体ptStruct
|
|
|
void CFlyLineDesign::AddPoint(const PtStruct ptStruct)
|
|
|
{
|
|
|
//“置点”按钮可选
|
|
|
GetDlgItem(IDC_BTN_ADD_POINT)->EnableWindow(TRUE);
|
|
|
|
|
|
//航点编号
|
|
|
m_curPoint.nPt = ptStruct.nPt;
|
|
|
|
|
|
//经度
|
|
|
m_curPoint.dX = ptStruct.dX;
|
|
|
|
|
|
//纬度
|
|
|
m_curPoint.dY = ptStruct.dY;
|
|
|
|
|
|
//插入航点编号
|
|
|
InsertComboBox(ptStruct.nPt);
|
|
|
|
|
|
//设置下拉列表框的焦点
|
|
|
m_comboPt.SetCurSel(ptStruct.nPt-1);
|
|
|
|
|
|
//设置当前界面的数据
|
|
|
SetWindowMembersValue(ptStruct);
|
|
|
|
|
|
UpdateData(FALSE);
|
|
|
}
|
|
|
|
|
|
|
|
|
//功能:对话框界面操作——增加新的航点
|
|
|
void CFlyLineDesign::OnAddFlyLinePoint()
|
|
|
{
|
|
|
//获得软件界面输入的数据
|
|
|
GetWindowMembersValue(m_curPoint);
|
|
|
|
|
|
//加入航线集合中
|
|
|
m_pLinePts[m_linePtNums] = m_curPoint;
|
|
|
m_linePtNums ++;
|
|
|
|
|
|
m_bAddNewPoint = true;
|
|
|
|
|
|
if (m_linePtNums > 0)
|
|
|
{
|
|
|
GetDlgItem(IDC_BTN_SAVE_LINE)->EnableWindow(TRUE);
|
|
|
}
|
|
|
|
|
|
//发送消息到主程序,进行标绘
|
|
|
if (g_mapHwnd != NULL)
|
|
|
{
|
|
|
::SendMessage(g_mapHwnd, WM_ADD_LINE_POINT, 0, 0);
|
|
|
}
|
|
|
|
|
|
//“置点”按钮可选
|
|
|
GetDlgItem(IDC_BTN_ADD_POINT)->EnableWindow(FALSE);
|
|
|
}
|
|
|
|
|
|
|
|
|
//功能:对话框界面操作——修改航点
|
|
|
void CFlyLineDesign::OnEditFlyLinePoint()
|
|
|
{
|
|
|
//初始化
|
|
|
memset(&m_curPoint, 0, sizeof(PtStruct));
|
|
|
|
|
|
//获得软件界面输入的数据
|
|
|
GetWindowMembersValue(m_curPoint);
|
|
|
|
|
|
//编辑位置
|
|
|
int editPos = m_comboPt.GetCurSel();
|
|
|
|
|
|
//航点编号
|
|
|
m_curPoint.nPt = editPos +1;
|
|
|
|
|
|
//更新航点数据
|
|
|
m_pLinePts[editPos] = m_curPoint;
|
|
|
|
|
|
GetDlgItem(IDC_BTN_ADD_POINT)->EnableWindow(TRUE);
|
|
|
GetDlgItem(IDC_BTN_EDIT_POINT)->EnableWindow(FALSE);
|
|
|
GetDlgItem(IDC_BTN_DELETE_POINT)->EnableWindow(FALSE);
|
|
|
|
|
|
g_ptModeInLineDesign = 0;
|
|
|
|
|
|
//向主程序发送航点删除信息
|
|
|
if (g_mapHwnd != NULL)
|
|
|
{
|
|
|
::SendMessage(g_mapHwnd, WM_EDIT_LINE_POINT, (WPARAM)(&m_curPoint), 0);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
//功能:对话框界面操作——删除航点
|
|
|
void CFlyLineDesign::OnDeleteFlyLinePoint()
|
|
|
{
|
|
|
UpdateData(TRUE);
|
|
|
|
|
|
//删除航点的航点号
|
|
|
int pointID = m_comboPt.GetCurSel();
|
|
|
|
|
|
//向主程序发送航点删除信息
|
|
|
if (g_mapHwnd != NULL)
|
|
|
{
|
|
|
::SendMessage(g_mapHwnd, WM_DELETE_LINE_POINT, (WPARAM)pointID, 0);
|
|
|
}
|
|
|
|
|
|
//删除选定点,改点后面的点依次往前移动一位
|
|
|
for (int i=pointID; i<m_linePtNums-1; i++)
|
|
|
{
|
|
|
m_pLinePts[i] = m_pLinePts[i+1];
|
|
|
m_pLinePts[i].nPt --;
|
|
|
}
|
|
|
|
|
|
//航点个数减少1
|
|
|
m_linePtNums --;
|
|
|
|
|
|
//清除组合框现有数据
|
|
|
if (m_comboPt.GetCount()>0)
|
|
|
{
|
|
|
m_comboPt.ResetContent();
|
|
|
|
|
|
for (int i=0; i<m_linePtNums; i++)
|
|
|
{
|
|
|
InsertComboBox(i+1);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//航点个数大于0
|
|
|
if (m_linePtNums > 0)
|
|
|
{
|
|
|
m_curPoint = m_pLinePts[m_linePtNums-1];
|
|
|
|
|
|
//设置下拉列表框显示最后一个元素
|
|
|
m_comboPt.SetCurSel(m_linePtNums-1);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
memset(&m_curPoint, 0, sizeof(PtStruct));
|
|
|
}
|
|
|
|
|
|
//设置软件界面显示的数据
|
|
|
SetWindowMembersValue(m_curPoint);
|
|
|
|
|
|
UpdateData(FALSE);
|
|
|
|
|
|
GetDlgItem(IDC_BTN_ADD_POINT)->EnableWindow(TRUE);
|
|
|
GetDlgItem(IDC_BTN_EDIT_POINT)->EnableWindow(FALSE);
|
|
|
GetDlgItem(IDC_BTN_DELETE_POINT)->EnableWindow(FALSE);
|
|
|
|
|
|
g_ptModeInLineDesign = 0;
|
|
|
}
|
|
|
|
|
|
|
|
|
//功能:对话框界面操作——保存航线
|
|
|
void CFlyLineDesign::OnSaveFlyLine()
|
|
|
{
|
|
|
int Char_tmp;
|
|
|
Char_tmp = ((CComboBox*)GetDlgItem(IDC_COMBO_CHAR))->GetCurSel();
|
|
|
|
|
|
switch (Char_tmp)
|
|
|
{
|
|
|
case 0:
|
|
|
m_ptCarctr = 1;
|
|
|
break;
|
|
|
case 1:
|
|
|
m_ptCarctr = 3;
|
|
|
break;
|
|
|
case 2:
|
|
|
m_ptCarctr = 5;
|
|
|
break;
|
|
|
case 3:
|
|
|
m_ptCarctr = 7;
|
|
|
break;
|
|
|
case 4:
|
|
|
m_ptCarctr = 11;
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
g_ptModeInLineDesign = 0;
|
|
|
|
|
|
//如果航线数据为空,返回
|
|
|
if (m_linePtNums <= 0)
|
|
|
{
|
|
|
CDialog::OnOK();
|
|
|
}
|
|
|
|
|
|
//航线文件路径
|
|
|
CString strFlyLineName = _T("");
|
|
|
|
|
|
//航线编号
|
|
|
int designLineID = 0;
|
|
|
|
|
|
//航路特征字
|
|
|
int lineProperty = 0;
|
|
|
|
|
|
//弹出航线选择对话框
|
|
|
|
|
|
|
|
|
CSetSaveLineID dlg;
|
|
|
if (dlg.DoModal() == IDOK)
|
|
|
{
|
|
|
//航路文件名
|
|
|
strFlyLineName = dlg.m_strFlyLineName;
|
|
|
|
|
|
//航线编号
|
|
|
designLineID = dlg.m_designLineID;
|
|
|
|
|
|
//航路特征字
|
|
|
lineProperty = dlg.m_lineProperty;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
return ;
|
|
|
}
|
|
|
|
|
|
//选择航点特征字
|
|
|
m_ptCarctr=((CComboBox*)GetDlgItem(IDC_COMBO_CHAR))->GetCurSel() ;
|
|
|
|
|
|
|
|
|
//写出航线数据
|
|
|
FILE *fp = fopen(strFlyLineName, "w" );
|
|
|
if ( fp == NULL )
|
|
|
{
|
|
|
CDialog::OnOK();
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
PtStruct pt;
|
|
|
memset(&pt, 0, sizeof(PtStruct));
|
|
|
|
|
|
//原点数据写入
|
|
|
fprintf(fp, "%d, %d, %.7f, %.7f, %.2lf, %d, %02X, %02X\n", designLineID, 0, g_gcsLon, g_gcsLat, 0.0, 0, 0, 2);
|
|
|
|
|
|
//遍历航点集合数据
|
|
|
for ( int i = 0; i < m_linePtNums; i++ )
|
|
|
{
|
|
|
pt = m_pLinePts[i];
|
|
|
|
|
|
//将除最后一个点的数据写入文件
|
|
|
if ( i < (m_linePtNums-1))
|
|
|
{
|
|
|
fprintf(fp, "%d, %d, %.7f, %.7f, %.2lf, %d, %02X, %02X\n", designLineID, pt.nPt, pt.dX, pt.dY, pt.nH, pt.nV, pt.ch1, pt.ch2);
|
|
|
}
|
|
|
else//将最后一个点的航段特征数据写入文件
|
|
|
{
|
|
|
fprintf(fp, "%d, %d, %.7f, %.7f, %.2lf, %d, %02X, %02X\n", designLineID, pt.nPt, pt.dX, pt.dY, pt.nH, pt.nV, pt.ch1, lineProperty);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
fclose( fp );
|
|
|
|
|
|
//弹出保存成功对话框
|
|
|
AfxMessageBox(_T("航线文件保存成功!"));
|
|
|
|
|
|
//发送对话框关闭消息到主程序
|
|
|
if (g_mapHwnd != NULL)
|
|
|
{
|
|
|
::SendMessage(g_mapHwnd, WM_CLOSE_LINEDESIGN_DIALOG, 0, 0);
|
|
|
|
|
|
//关闭对话框
|
|
|
CDialog::OnCancel();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//界面数据赋值
|
|
|
//输入:航点数据体pt
|
|
|
void CFlyLineDesign::SetWindowMembersValue(const PtStruct pt)
|
|
|
{
|
|
|
//经度
|
|
|
m_ptLon = pt.dX;
|
|
|
|
|
|
//纬度
|
|
|
m_ptLat = pt.dY;
|
|
|
|
|
|
//高度
|
|
|
m_ptAlt = pt.nH;
|
|
|
|
|
|
//飞行速度
|
|
|
m_flySpeed = pt.nV;
|
|
|
}
|
|
|
|
|
|
|
|
|
//功能:获得界面输入的数据
|
|
|
//输入:航点数据体pt
|
|
|
//输出:航点数据体pt
|
|
|
void CFlyLineDesign::GetWindowMembersValue(PtStruct &pt)
|
|
|
{
|
|
|
UpdateData(TRUE);
|
|
|
|
|
|
//经度
|
|
|
pt.dX = m_ptLon;
|
|
|
|
|
|
//纬度
|
|
|
pt.dY = m_ptLat;
|
|
|
|
|
|
//高度
|
|
|
pt.nH = m_ptAlt;
|
|
|
|
|
|
//飞行速度
|
|
|
pt.nV = m_flySpeed;
|
|
|
|
|
|
//航路特征字
|
|
|
pt.ch2 = 0X02;
|
|
|
|
|
|
}
|
|
|
|
|
|
BOOL CFlyLineDesign::OnInitDialog()
|
|
|
{
|
|
|
CDialog::OnInitDialog();
|
|
|
|
|
|
// SetWindowPos( &CWnd::wndTop, m_rcLineDesignArea.left, m_rcLineDesignArea.top, 0, 0, SWP_NOSIZE | SWP_NOACTIVATE);
|
|
|
|
|
|
|
|
|
( ( CComboBox * ) GetDlgItem( IDC_COMBO_CHAR ) )->InsertString(0, _T("复飞航线") );
|
|
|
( ( CComboBox * ) GetDlgItem( IDC_COMBO_CHAR ) )->InsertString(1, _T("还有航点") );
|
|
|
( ( CComboBox * ) GetDlgItem( IDC_COMBO_CHAR ) )->InsertString(2, _T("归航回收") );
|
|
|
( ( CComboBox * ) GetDlgItem( IDC_COMBO_CHAR ) )->InsertString(3, _T("着陆轨迹切入点") );
|
|
|
( ( CComboBox * ) GetDlgItem( IDC_COMBO_CHAR ) )->InsertString(4, _T("接地点") );
|
|
|
|
|
|
( ( CComboBox * ) GetDlgItem( IDC_COMBO_CHAR ) )->SetCurSel(0);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GetDlgItem(IDC_BTN_ADD_POINT)->EnableWindow(TRUE);
|
|
|
GetDlgItem(IDC_BTN_EDIT_POINT)->EnableWindow(FALSE);
|
|
|
GetDlgItem(IDC_BTN_DELETE_POINT)->EnableWindow(FALSE);
|
|
|
GetDlgItem(IDC_BTN_SAVE_LINE)->EnableWindow(FALSE);
|
|
|
|
|
|
// MoveWindow(m_rcLineDesignArea.left, m_rcLineDesignArea.top, 0, 0, TRUE);
|
|
|
|
|
|
//移动到固定的显示区域
|
|
|
// SetWindowPos( &CWnd::wndTop, m_rcLineDesignArea.left, m_rcLineDesignArea.top, 0, 0, SWP_NOSIZE | SWP_NOACTIVATE | SWP_HIDEWINDOW );
|
|
|
|
|
|
SetWindowPos( &CWnd::wndTop, m_rcLineDesignArea.left, m_rcLineDesignArea.top, 0, 0, SWP_NOSIZE | SWP_NOACTIVATE | SWP_HIDEWINDOW );
|
|
|
|
|
|
|
|
|
// ShowWindow(SW_HIDE);
|
|
|
|
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
|
|
// 异常: OCX 属性页应返回 FALSE
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//功能:移动对话框到给定的显示区域
|
|
|
void CFlyLineDesign::MoveToGivenArea(const CRect rcArea)
|
|
|
{
|
|
|
m_rcLineDesignArea = rcArea;
|
|
|
m_rcLineDesignArea.top += 20;
|
|
|
}
|
|
|
|
|
|
|
|
|
//功能:下拉列表框航点编号更改
|
|
|
void CFlyLineDesign::OnCbnSelchangeComboPt()
|
|
|
{
|
|
|
UpdateData(TRUE);
|
|
|
|
|
|
//没有航点数据时,返回
|
|
|
if (m_linePtNums <= 0)
|
|
|
{
|
|
|
GetDlgItem(IDC_BTN_ADD_POINT)->EnableWindow(TRUE);
|
|
|
GetDlgItem(IDC_BTN_EDIT_POINT)->EnableWindow(FALSE);
|
|
|
GetDlgItem(IDC_BTN_DELETE_POINT)->EnableWindow(FALSE);
|
|
|
|
|
|
g_ptModeInLineDesign = 0;
|
|
|
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
//下拉列表框的航点编号不存在于航线集合中时,返回
|
|
|
if (m_comboPt.GetCurSel()+1 > m_linePtNums)
|
|
|
{
|
|
|
GetDlgItem(IDC_BTN_ADD_POINT)->EnableWindow(TRUE);
|
|
|
GetDlgItem(IDC_BTN_EDIT_POINT)->EnableWindow(FALSE);
|
|
|
GetDlgItem(IDC_BTN_DELETE_POINT)->EnableWindow(FALSE);
|
|
|
|
|
|
g_ptModeInLineDesign = 0;
|
|
|
|
|
|
return;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
//选中的航点编号
|
|
|
int selectID = m_comboPt.GetCurSel();
|
|
|
|
|
|
//航点数据
|
|
|
m_curPoint = m_pLinePts[m_comboPt.GetCurSel()];
|
|
|
|
|
|
//设置软件界面显示的数据
|
|
|
SetWindowMembersValue(m_curPoint);
|
|
|
|
|
|
UpdateData(FALSE);
|
|
|
|
|
|
GetDlgItem(IDC_BTN_ADD_POINT)->EnableWindow(FALSE);
|
|
|
GetDlgItem(IDC_BTN_EDIT_POINT)->EnableWindow(TRUE);
|
|
|
GetDlgItem(IDC_BTN_DELETE_POINT)->EnableWindow(TRUE);
|
|
|
|
|
|
//向主程序发送待编辑的航点数据
|
|
|
if (g_mapHwnd != NULL)
|
|
|
{
|
|
|
::SendMessage(g_mapHwnd, WM_EDIT_LINE_POINT, (WPARAM)(&m_curPoint), 1);
|
|
|
}
|
|
|
|
|
|
g_ptModeInLineDesign = 1;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
void CFlyLineDesign::OnBnClickedCancel()
|
|
|
{
|
|
|
//发送对话框关闭消息到主程序
|
|
|
if (g_mapHwnd != NULL)
|
|
|
{
|
|
|
::SendMessage(g_mapHwnd, WM_CLOSE_LINEDESIGN_DIALOG, 0, 0);
|
|
|
}
|
|
|
|
|
|
g_ptModeInLineDesign = 0;
|
|
|
|
|
|
CDialog::OnCancel();
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//功能:往下拉列表框增加一行数据
|
|
|
//输入:点号pointID
|
|
|
void CFlyLineDesign::InsertComboBox(const int pointID)
|
|
|
{
|
|
|
//判断下该项目是否存在,存在,不新建
|
|
|
if (m_comboPt.GetCount() >= pointID)
|
|
|
{
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
CString str = _T("");
|
|
|
str.Format(_T("%d"), pointID);
|
|
|
|
|
|
//插入组合框中
|
|
|
m_comboPt.InsertString(pointID-1, str);
|
|
|
}
|
|
|
|
|
|
//功能:编辑航点数据
|
|
|
//输入:经度lon,纬度lat
|
|
|
void CFlyLineDesign::EditPoint(const double lon, const double lat)
|
|
|
{
|
|
|
//航点数据
|
|
|
m_curPoint.dX = lon;
|
|
|
|
|
|
m_curPoint.dY = lat;
|
|
|
|
|
|
//更新航点数据
|
|
|
m_pLinePts[m_curPoint.nPt-1] = m_curPoint;
|
|
|
|
|
|
//设置软件界面显示的数据
|
|
|
SetWindowMembersValue(m_curPoint);
|
|
|
|
|
|
UpdateData(FALSE);
|
|
|
|
|
|
GetDlgItem(IDC_BTN_ADD_POINT)->EnableWindow(FALSE);
|
|
|
GetDlgItem(IDC_BTN_EDIT_POINT)->EnableWindow(TRUE);
|
|
|
GetDlgItem(IDC_BTN_DELETE_POINT)->EnableWindow(FALSE);
|
|
|
|
|
|
//向主程序发送航点编辑信息
|
|
|
if (g_mapHwnd != NULL)
|
|
|
{
|
|
|
::SendMessage(g_mapHwnd, WM_EDIT_LINE_POINT, (WPARAM)(&m_curPoint), 1);
|
|
|
}
|
|
|
}
|