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

📄 import1datasetdlg.cpp

📁 用VC+SuperMap开发的校园GIS系统
💻 CPP
字号:
// Import1DatasetDlg.cpp : implementation file
//

#include "stdafx.h"
#include "CampusGis.h"
#include "Import1DatasetDlg.h"
#include "sodatasources.h"
#include "sodatasource.h"
#include "sodatasets.h"
#include "sodataset.h"

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

/////////////////////////////////////////////////////////////////////////////
// CImport1DatasetDlg dialog


CImport1DatasetDlg::CImport1DatasetDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CImport1DatasetDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CImport1DatasetDlg)
	//}}AFX_DATA_INIT
	m_pImport2VDatasetDlg=NULL;
	m_pImport2GDatasetDlg=NULL;
}


void CImport1DatasetDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CImport1DatasetDlg)
	DDX_Control(pDX, IDC_CHKPROGRESS, m_chkProgress);
	DDX_Control(pDX, IDOK, m_Ok);
	DDX_Control(pDX, IDC_CMBFILETYPE, m_cmbFileType);
	DDX_Control(pDX, IDC_EDITIMPORTFILE, m_editImportFile);
	DDX_Control(pDX, IDC_CMBIMPORTTO, m_cmbImportTo);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CImport1DatasetDlg, CDialog)
	//{{AFX_MSG_MAP(CImport1DatasetDlg)
	ON_BN_CLICKED(IDC_OPTVECTOR, OnOptVector)
	ON_BN_CLICKED(IDC_OPTGRID, OnOptGrid)
	ON_CBN_SELCHANGE(IDC_CMBFILETYPE, OnSelchangeCmbFileType)
	ON_BN_CLICKED(IDC_BTNOPEN, OnBtnOpen)
	ON_BN_CLICKED(IDC_CHKPROGRESS, OnChkProgress)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CImport1DatasetDlg message handlers

BOOL CImport1DatasetDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	//获取主窗体数据源信息,添加到组合框
	CsoDataSource objDs;
	m_cmbImportTo.ResetContent();
	m_pSuperWorkspace=&GetMainFramePointer()->m_SuperWorkspace;
	for(long i=1;i<=m_pSuperWorkspace->GetDatasources().GetCount();i++)
	{
		objDs=m_pSuperWorkspace->GetDatasources().GetItem(COleVariant(i));
		if(objDs)
			m_cmbImportTo.AddString(objDs.GetAlias());
	}
	objDs.ReleaseDispatch();
	m_nOldIndex=-1;
	OnOptVector();
	CButton *button=(CButton *)GetDlgItem(IDC_OPTVECTOR);
	button->SetCheck(1);
	button=NULL;
	delete button;
	m_bShowProgress=FALSE;

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

CMainFrame* CImport1DatasetDlg::GetMainFramePointer()
{
	CMainFrame *pFrame=(CMainFrame *)::AfxGetMainWnd();
	return pFrame;
}

void CImport1DatasetDlg::OnOptVector() 
{
	//选择矢量数据集
	m_bVector=TRUE;
	m_cmbFileType.ResetContent();
	m_cmbFileType.AddString("MapInfo 交换文件 (*.mif)");
	m_cmbFileType.AddString("MapInfo 表文件 (*.tab)");
	m_cmbFileType.AddString("MicroStation 文件(*.dgn)");
	m_cmbFileType.AddString("Arc/Info E00 文件 (*.e00)");
	m_cmbFileType.AddString("ArcView Shape 文件 (*.shp)");
	m_cmbFileType.AddString("Arc/Info Coverage 文件 (*.*)");
	m_cmbFileType.AddString("国标矢量交换文件 (*.vct)|*.vct");
	m_cmbFileType.AddString("idrisi矢量交换文件 (*.vce)|*.vec");
	m_cmbFileType.AddString("AutoCAD 交换文件(*.dxf)");
	m_cmbFileType.AddString("WMF(*.wmf)");
	m_cmbFileType.SetCurSel(0);
	m_nOldIndex=m_cmbFileType.GetCurSel();
	m_editImportFile.SetWindowText(_T(""));
}

void CImport1DatasetDlg::OnOptGrid() 
{
	//选择栅格数据集
	m_bVector=FALSE;
	m_cmbFileType.ResetContent();
	m_cmbFileType.AddString("Bmp 图像文件(*.bmp)");
	m_cmbFileType.AddString("Grid 图像文件(*.grd)");
	m_cmbFileType.AddString("JPG 图像文件(*.jpg)");
	m_cmbFileType.AddString("MrSid 图像文件(*.sid)");
	m_cmbFileType.AddString("WMF 图像文件(*.wmf)");
	m_cmbFileType.AddString("Idrisi 栅格文件(*.img)");
	m_cmbFileType.AddString("Erdas 影像文件(*.img)");
	m_cmbFileType.AddString("TIF 图像文件(*.tif)");
	m_cmbFileType.AddString("ECW格式文件(*.ecw)");
	m_cmbFileType.SetCurSel(0);
	m_nOldIndex=m_cmbFileType.GetCurSel();
	m_editImportFile.SetWindowText(_T(""));	
}

void CImport1DatasetDlg::OnSelchangeCmbFileType() 
{
	//选择文件类型
	if(m_nOldIndex != m_cmbFileType.GetCurSel())
		m_editImportFile.SetWindowText(_T(""));
	m_nOldIndex=m_cmbFileType.GetCurSel();
}

void CImport1DatasetDlg::OnBtnOpen() 
{
	//打开文件
	CString strFilter;
	int index;
	index=m_cmbFileType.GetCurSel();
	if(index < 0)
		return;
	m_cmbFileType.GetLBText(index,strFilter);
	strFilter.Replace("(","|");
	strFilter.Replace(")","|");

	CFileDialog dlg(true,NULL,NULL,OFN_FILEMUSTEXIST|OFN_OVERWRITEPROMPT,
		strFilter,NULL);
	if(dlg.DoModal()==IDOK)
	{
		m_strPathName=dlg.GetPathName();
		m_editImportFile.SetWindowText(dlg.GetFileTitle());
		m_Ok.SetFocus();
	}
}

void CImport1DatasetDlg::OnOK() 
{
	//下一步
	CString strFileName;
	m_editImportFile.GetWindowText(strFileName);
	if(strFileName.IsEmpty())
	{
		AfxMessageBox("请选择源文件!");
		return;
	}
	int index;
	index=m_cmbImportTo.GetCurSel();
	if(index < 0)
	{
		AfxMessageBox("请选择目标数据源!");
		return;
	}
	CString strDatasourceName;
	m_cmbImportTo.GetLBText(index,strDatasourceName);
	if(strDatasourceName.IsEmpty())
	{
		AfxMessageBox("选择的目标数据源为空!");
		return;
	}
	CButton *button=(CButton *)GetDlgItem(IDC_OPTVECTOR);
	if(button->GetCheck())
		m_bVector=TRUE;
	else
		m_bVector=FALSE;
	switch(m_bVector)
	{
		case TRUE:
			CreateImport2VDatasetDlg(strFileName,strDatasourceName);
			break;
		case FALSE:
			CreateImport2GDatasetDlg(strFileName,strDatasourceName);
			break;				
	}
	button=NULL;
	delete button;
	CDialog::OnOK();
}

void CImport1DatasetDlg::OnChkProgress() 
{
	//显示进度条
	if(m_chkProgress.GetCheck()==1)
		m_bShowProgress=TRUE;
	else
		m_bShowProgress=FALSE;
}

void CImport1DatasetDlg::CreateImport2VDatasetDlg(CString strFileName,CString strDatasourceName)
{
	m_pImport2VDatasetDlg=new CImport2VDatasetDlg;
	m_pImport2VDatasetDlg->Create(IDD_IMPORT2VDLG);
	switch(m_cmbFileType.GetCurSel())
	{
		case 0:
			m_str=_T("完成");					
			m_pImport2VDatasetDlg->m_cmbUnit.EnableWindow(FALSE);
			break;
		case 2:
			m_str=_T("下一步");
			break;
		default:
			m_str=_T("完成");
			m_pImport2VDatasetDlg->m_cmbUnit.EnableWindow(TRUE);
			break;
	}
	m_pImport2VDatasetDlg->ShowWindow(SW_SHOW);
	m_pImport2VDatasetDlg->m_strPathName=m_strPathName;
	m_pImport2VDatasetDlg->m_Ok.SetWindowText(m_str);
	m_pImport2VDatasetDlg->m_editCADLayer.SetWindowText(strFileName+"_CAD");
	m_pImport2VDatasetDlg->m_editPoint.SetWindowText(strFileName+"_Point");
	m_pImport2VDatasetDlg->m_editLine.SetWindowText(strFileName+"_Line");
	m_pImport2VDatasetDlg->m_editRegion.SetWindowText(strFileName+"_Region");
	m_pImport2VDatasetDlg->m_editText.SetWindowText(strFileName+"_Text");
	m_pImport2VDatasetDlg->m_strDatasourceName=strDatasourceName;
	m_pImport2VDatasetDlg->m_bShowProgress=m_bShowProgress;
	m_pImport2VDatasetDlg->m_nFileTypeIndex=m_nOldIndex;
}

void CImport1DatasetDlg::CreateImport2GDatasetDlg(CString strFileName,CString strDatasourceName)
{
	m_pImport2GDatasetDlg=new CImport2GDatasetDlg;
	m_pImport2GDatasetDlg->Create(IDD_IMPORT2GDLG);
	m_pImport2GDatasetDlg->ShowWindow(TRUE);
	m_pImport2GDatasetDlg->m_editLayerName.SetWindowText(strFileName);
	m_pImport2GDatasetDlg->m_strDatasourceName=strDatasourceName;
	m_pImport2GDatasetDlg->m_strPathName=m_strPathName;
	m_pImport2GDatasetDlg->m_bShowProgress=m_bShowProgress;
	m_pImport2GDatasetDlg->m_nFileTypeIndex=m_nOldIndex;
}

⌨️ 快捷键说明

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