#pragma once

#include "resource.h"
#include "Globe.h"
#include "../Include/8BMapDLL_type.h"
using namespace B8MapDLL;



class CFlyLineDesign: public CDialog
{	

public:

	CFlyLineDesign(CWnd* pParent = NULL);   // 标准构造函数

	virtual ~CFlyLineDesign();

// 对话框数据
	enum { IDD = IDD_DIALOG_FLYLINE_DESIGN};

public:

	//清除已有的航线数据,包括界面显示的数据
	void ClearCurrentData();

	//功能:增加新的航点
	//输入:经度lon,纬度lat
	void AddPoint(const double lon, const double lat);

	//功能:增加新的航点
	//输入:航点数据体ptStruct
	void AddPoint(const PtStruct ptStruct);

	//功能:移动对话框到给定的显示区域
	void MoveToGivenArea(const CRect rcArea);

	//功能:编辑航点数据
	//输入:经度lon,纬度lat
	void EditPoint(const double lon, const double lat);

protected:

	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持

	DECLARE_MESSAGE_MAP()

private:

	double m_ptLon;     //航点经度
	double m_ptLat;		//航点纬度
	short m_ptAlt;     //航点高度

	BYTE m_flySpeed;      //航点飞行速度

	CComboBox m_comboPt;     //航点编号		

	//当前的航点数据
	PtStruct m_curPoint;

	//显示区域
	CRect m_rcLineDesignArea;

	//是否增加新的航点
	bool m_bAddNewPoint;

	//航线数据集合
	PtStruct *m_pLinePts;

	//航线的航点个数
	int m_linePtNums;

	//总的航点个数
	int m_totalPtNums;

	//航路特征字
	int m_ptCarctr;

private:

	//初始化所有的变量
	void InitiazeAllMembers();

	//界面数据赋值
	//输入:航点数据体pt
	void SetWindowMembersValue(const PtStruct pt);

	//功能:获得界面输入的数据
	//输入:航点数据体pt
	//输出:航点数据体pt
	void GetWindowMembersValue(PtStruct &pt);

	//功能:往下拉列表框增加一行数据
	//输入:点号pointID
	void InsertComboBox(const int pointID);

public:
	afx_msg void OnAddFlyLinePoint();
	afx_msg void OnEditFlyLinePoint();
	afx_msg void OnDeleteFlyLinePoint();
	afx_msg void OnSaveFlyLine();
	virtual BOOL OnInitDialog();

	afx_msg void OnCbnSelchangeComboPt();
	afx_msg void OnBnClickedCancel();
};