⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lineeditdlg.cpp

📁 vc 和mapobjects地理信息系统组件开发 很有启发意义和参考价值
💻 CPP
字号:
// LineEditDlg.cpp : implementation file
//

#include "stdafx.h"
#include "mapper.h"
#include "LineEditDlg.h"

#include "pointeditdlg.h"
#include "logfile.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CLineEditDlg dialog


CLineEditDlg::CLineEditDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CLineEditDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CLineEditDlg)
	m_nData = -1;
	m_sInfo = _T("");
	//}}AFX_DATA_INIT
}


void CLineEditDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CLineEditDlg)
	DDX_Control(pDX, IDC_DATA, m_oData);
	DDX_LBIndex(pDX, IDC_DATA, m_nData);
	DDX_Text(pDX, IDC_INFO, m_sInfo);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CLineEditDlg, CDialog)
	//{{AFX_MSG_MAP(CLineEditDlg)
	ON_LBN_DBLCLK(IDC_DATA, OnDblclkData)
	ON_BN_CLICKED(IDC_ADD, OnAdd)
	ON_BN_CLICKED(IDC_DELETE, OnDelete)
	ON_BN_CLICKED(IDC_INSERT, OnInsert)
	ON_BN_CLICKED(IDC_PAN, OnPan)
	ON_BN_CLICKED(IDC_EXPORT, OnExport)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CLineEditDlg message handlers

BOOL CLineEditDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	long i;
	CString s;
	for(i=0;i<m_taPoint.GetSize();i++)
	{
		s.Format("%lf,%lf",m_taPoint[i].x,m_taPoint[i].y);
		m_oData.AddString(s);		
	}
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CLineEditDlg::OnDblclkData() 
{
	UpdateData();

	CString s;	
	CPointEditDlg ped;
	ped.m_dX=m_taPoint[m_nData].x;
	ped.m_dY=m_taPoint[m_nData].y;
	if(ped.DoModal()!=IDOK)
		return;

	m_taPoint[m_nData].x=ped.m_dX;
	m_taPoint[m_nData].y=ped.m_dY;
	s.Format("%lf,%lf",ped.m_dX,ped.m_dY);
	m_oData.DeleteString(m_nData);
	m_oData.InsertString(m_nData,s);
	
	UpdateData(FALSE);
}

void CLineEditDlg::OnAdd() 
{
	CString s;	
	CPointEditDlg ped;
	ped.m_dX=0.0;
	ped.m_dY=0.0;
	if(ped.DoModal()!=IDOK)
		return;

	SMapperPoint mp;
	mp.x=ped.m_dX;
	mp.y=ped.m_dY;
	m_taPoint.Add(mp);
	s.Format("%lf,%lf",ped.m_dX,ped.m_dY);
	m_oData.AddString(s);

}

void CLineEditDlg::OnDelete() 
{
	UpdateData();
	if(m_nData<0)
	{
		AfxMessageBox("必须在列表中选择一个数据!");
		return;
	}

	m_taPoint.RemoveAt(m_nData);
	m_oData.DeleteString(m_nData);
}

void CLineEditDlg::OnInsert() 
{
	UpdateData();

	if(m_nData<0)
	{
		AfxMessageBox("必须在列表中选择一个数据!\n新数据将插入在选择数据前面!");
		return;
	}

	CString s;	
	CPointEditDlg ped;
	ped.m_dX=0.0;
	ped.m_dY=0.0;
	if(ped.DoModal()!=IDOK)
		return;

	SMapperPoint mp;
	mp.x=ped.m_dX;
	mp.y=ped.m_dY;
	m_taPoint.InsertAt(m_nData,mp);
	s.Format("%lf,%lf",ped.m_dX,ped.m_dY);
	m_oData.InsertString(m_nData,s);
	
	UpdateData(FALSE);
}

void CLineEditDlg::OnPan() 
{
	CString s;	
	CPointEditDlg ped;
	ped.m_dX=0.0;
	ped.m_dY=0.0;
	if(ped.DoModal()!=IDOK)
		return;

	m_oData.ResetContent();

	long i;
	for(i=0;i<m_taPoint.GetSize();i++)
	{
		m_taPoint[i].x+=ped.m_dX;
		m_taPoint[i].y+=ped.m_dY;
		s.Format("%lf,%lf",m_taPoint[i].x,m_taPoint[i].y);
		m_oData.AddString(s);		
	}
	
}

void CLineEditDlg::OnExport() 
{
	CFileDialog	fd(FALSE,"txt",NULL,OFN_EXPLORER|OFN_HIDEREADONLY|OFN_ALLOWMULTISELECT,"文本文件(*.txt)|*.txt||",this);	
	if(fd.DoModal()!=IDOK)
		return;

	CString s;
	CLogFile f;
	f.SetPathFile(fd.GetPathName());
	for(long i=0;i<m_oData.GetCount();i++)
	{
		m_oData.GetText(i,s);
		s.Replace(","," ");
		f.OutPutLine(s);
	}
	AfxMessageBox("输出完成!");
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -