// LineDesign.cpp : 实现文件
//

#include "stdafx.h"
#include "GISDlg.h"
#include "LineDesign.h"
#include "afxdialogex.h"


// CLineDesign 对话框

IMPLEMENT_DYNAMIC(CLineDesign, CDialog)

CLineDesign::CLineDesign(CWnd* pParent /*=NULL*/)
	: CDialog(CLineDesign::IDD, pParent)
{

}

CLineDesign::~CLineDesign()
{
}

void CLineDesign::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_LIST_LINE, m_list);
}


BEGIN_MESSAGE_MAP(CLineDesign, CDialog)
	ON_WM_NOTIFYFORMAT(NM_RCLICK, IDC_LIST_LINE, OnRclickList)
END_MESSAGE_MAP()


// CLineDesign 消息处理程序


BOOL CLineDesign::OnInitDialog()
{
	CDialog::OnInitDialog();

	// TODO:  在此添加额外的初始化

	//获取当前的扩展形式
	DWORD dwstyle = m_list.GetExtendedStyle();

	//选中某行使整行高亮(report风格)
	dwstyle = LVS_EX_FULLROWSELECT;

	//网格线(report风格)
	dwstyle |= LVS_EX_GRIDLINES;

	//单击激活
	dwstyle |= LVS_EX_ONECLICKACTIVATE;

	//在item之前产生checkout控件
	dwstyle |= LVS_EX_CHECKBOXES;

	m_list.SetExtendedStyle(dwstyle);

	CRect rect;

	m_list.GetWindowRect(&rect);

	int listwidth = rect.Width();

	m_list.InsertColumn(0,"航线号",LVCFMT_CENTER,listwidth/12,-1);
	m_list.InsertColumn(1,"航点号",LVCFMT_CENTER,listwidth/8,-1);
	m_list.InsertColumn(2,"经度",LVCFMT_CENTER,listwidth/8,-1);
	m_list.InsertColumn(3,"纬度",LVCFMT_CENTER,listwidth/8,-1);
	m_list.InsertColumn(4,"高度",LVCFMT_CENTER,listwidth/8,-1);
	m_list.InsertColumn(5,"速度",LVCFMT_CENTER,listwidth/8,-1);
	m_list.InsertColumn(6,"任务特征字",LVCFMT_CENTER,listwidth/8,-1);
	m_list.InsertColumn(7,"航路特征字",LVCFMT_CENTER,listwidth/7,-1);


	for (int i=0; i < 40; i++)
	{
		CString tstr;
		tstr.Format("%d",i);
		m_list.InsertItem(i,tstr);
	}


	return TRUE;  // return TRUE unless you set the focus to a control
	// 异常: OCX 属性页应返回 FALSE
}

//在表格里显示经纬度坐标
void CLineDesign::ShowLonLat(double lon, double lat)
{
	CString str;
	str.Format("%.6f", lon);
	m_list.SetItemText(0, 2, str);

	str.Format("%.6f", lat);
	m_list.SetItemText(0, 3, str);
	UpdateData(FALSE);
}

// void CLineDesign::InsertPt(tmpPT pData)
// {
// 	CString tstr;
// 	m_nowPt = pData.pt_id;
// 
// 	tstr.Format("%d",m_nowPt);
// 	m_list.SetItemText(m_nowPt, 1, tstr);
// 
// 	tstr.Format("%.6f", pData.pt_Lon);
// 	m_list.SetItemText(m_nowPt, 2, tstr);
// 
// 	tstr.Format("%.6f", pData.pt_Lat);
// 	m_list.SetItemText(m_nowPt, 3, tstr);
// }

void CLineDesign::InsertPt(PtStruct pData)
{
	CString tstr;
	m_nowPt = pData.nPt;

	tstr.Format("%d",m_nowPt);
	m_list.SetItemText(m_nowPt, 1, tstr);

	tstr.Format("%.6f", pData.dX);
	m_list.SetItemText(m_nowPt, 2, tstr);

	tstr.Format("%.6f", pData.dY);
	m_list.SetItemText(m_nowPt, 3, tstr);

	tstr.Format("%.6f", pData.nH);
	m_list.SetItemText(m_nowPt, 4, tstr);

	tstr.Format("%.6f", pData.nV);
	m_list.SetItemText(m_nowPt, 5, tstr);

	tstr.Format("0x%02x", pData.ch1);
	m_list.SetItemText(m_nowPt, 6, tstr);

	tstr.Format("0x%02x", pData.ch2);
	m_list.SetItemText(m_nowPt, 7, tstr);
}

UINT CLineDesign::OnNotifyFormat(CWnd *pWnd, UINT nCommand)
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值

	return CDialog::OnNotifyFormat(pWnd, nCommand);
}


//BOOL CLineDesign::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)
//{
//	// TODO: 在此添加专用代码和/或调用基类
//
//	return CDialog::OnNotify(wParam, lParam, pResult);
//}