www.pudn.com > Geotest.rar > DataSetsDlg.cpp


// DataSetsDlg.cpp : implementation file 
// 
 
#include "stdafx.h" 
#include "geotest.h" 
#include "DataSetsDlg.h" 
#include "afxdao.h" 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
///////////////////////////////////////////////////////////////////////////// 
// CDataSetsDlg dialog 
 
 
CDataSetsDlg::CDataSetsDlg(CWnd* pParent /*=NULL*/) 
	: CDialog(CDataSetsDlg::IDD, pParent) 
{ 
	//{{AFX_DATA_INIT(CDataSetsDlg) 
	m_ctrlSelLayer = _T(""); 
	m_layerName = _T(""); 
	m_dataPath = _T(""); 
	//}}AFX_DATA_INIT 
	m_pMapX=NULL; 
} 
 
CDataSetsDlg::CDataSetsDlg(CMapX *pMapX,CWnd* pParent /*=NULL*/) 
	: CDialog(CDataSetsDlg::IDD, pParent) 
{	m_ctrlSelLayer = _T(""); 
    m_dataPath = _T(""); 
	m_pMapX=pMapX; 
} 
void CDataSetsDlg::DoDataExchange(CDataExchange* pDX) 
{ 
	CDialog::DoDataExchange(pDX); 
	//{{AFX_DATA_MAP(CDataSetsDlg) 
	DDX_Control(pDX, IDC_DataType, m_dataType); 
	DDX_Control(pDX, IDC_LIST_DATASET, m_listdataset); 
	DDX_LBString(pDX, IDC_LIST_DATASET, m_ctrlSelLayer); 
	DDX_Text(pDX, IDC_LayerName, m_layerName); 
	DDX_Text(pDX, IDC_EDIT1, m_dataPath); 
	//}}AFX_DATA_MAP 
	 
} 
 
 
BEGIN_MESSAGE_MAP(CDataSetsDlg, CDialog) 
	//{{AFX_MSG_MAP(CDataSetsDlg) 
	ON_LBN_SELCHANGE(IDC_LIST_DATASET, OnSelchangeListDataset) 
	ON_BN_CLICKED(IDC_BUTTON1, OnSelData) 
	//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 
 
///////////////////////////////////////////////////////////////////////////// 
// CDataSetsDlg message handlers 
 
BOOL CDataSetsDlg::OnInitDialog()  
{ 
	CDialog::OnInitDialog(); 
	m_dataType.SetCurSel(0); 
	m_dataPath="E:\\工具软件\\MapInfo\\MapX 5.0\\data\\Mapstats.mdb"; 
	// TODO: Add extra initialization here 
	//设置列表项 
	if(m_pMapX==NULL) return FALSE; 
	CMapXLayers Layers = m_pMapX->GetLayers(); 
	int nIndex =-1; 
	for(int i=0;iAddRef(); 
		int i=m_dataType.GetCurSel();  
		switch(i) 
		{ 
		case 0 : 
			{ 
				ds = m_pMapX->GetDatasets().Add(miDataSetDAO, rsVt,COleVariant("ADOSet"), optVt,  
 optVt, COleVariant(m_layerName), optVt, optVt); 
				AfxMessageBox("绑定成功!"); 
			} 
			break; 
		case 1 : 
			{ 
				ds = m_pMapX->GetDatasets().Add(miDataSetDAO, rsVt); 
				AfxMessageBox("绑定成功!"); 
			} 
			break; 
		} 
		 
	} 
	catch (COleDispatchException *e) { 
		e->ReportError(); 
		e->Delete(); 
	} 
	catch (COleException *e) { 
		e->ReportError(); 
		e->Delete(); 
	} 
 
 
} 
//改变图层选择的响应函数 
void CDataSetsDlg::OnSelchangeListDataset()  
{ 
	UpdateData(TRUE); 
	m_layerName=m_ctrlSelLayer; 
	UpdateData(FALSE); 
	 
} 
//设置选择文件的对话框 
void CDataSetsDlg::OnSelData()  
{ 
	static char BASED_CODE szDataFilter[] = "Data Source (*.mdb)|*.mdb|All Files (*.*)|*.*||"; 
	CFileDialog dlgFile(TRUE, "*.mdb", NULL, 0, szDataFilter, this); 
	if (dlgFile.DoModal()==IDCANCEL) 
		return; 
	dlgFile.m_ofn.lpstrTitle = "打开需要绑定的数据源";//对话框名称 
	m_dataPath= dlgFile.GetPathName(); 
	UpdateData(FALSE); 
	 
} 
//这里的返回值一定不能是指针,因为它返回的是一个临时指针,作用域在本文件,在另外文件不能使用了!! 
CMapXDataset CDataSetsDlg :: OnGetDatasetName() 
{ 
	 return ds; 
}