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

📄 datalinkdlg.cpp

📁 在vc下编写的一个开发地理信息系统的程序
💻 CPP
字号:
// DataLinkDlg.cpp : implementation file
//

#include "stdafx.h"
#include "draw.h"
#include "linkdataset.h"
#include "drawdoc.h"
#include "data1ret.h"
#include "data1dlg.h"
#include "DataLinkDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CDataLinkDlg dialog


CDataLinkDlg::CDataLinkDlg(CDrawDoc* pDoc,CLinkDataSet* pLinkSet,CWnd* pParent /*=NULL*/)
	: CDialog(CDataLinkDlg::IDD, pParent)
{
	m_pDoc=pDoc;
	m_pLinkSet=pLinkSet;

	//{{AFX_DATA_INIT(CDataLinkDlg)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void CDataLinkDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDataLinkDlg)
		// NOTE: the ClassWizard will add DDX and DDV calls here
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDataLinkDlg, CDialog)
	//{{AFX_MSG_MAP(CDataLinkDlg)
	ON_BN_CLICKED(IDC_DATA_MODIFY, OnDataModify)
	ON_BN_CLICKED(IDC_LINK_DELETE, OnLinkDelete)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDataLinkDlg message handlers

BOOL CDataLinkDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	CString m_str;
	char p1[9];
	int nRecord;
	if(!m_pLinkSet->IsOpen())
		m_pLinkSet->Open();
	m_NumbLink=0;
	if(!m_pLinkSet->IsBOF())
	{
		m_pLinkSet->MoveFirst();
		do
		{
			database_id[m_NumbLink]=m_pLinkSet->m_database_id;
			link_mode[m_NumbLink]=m_pLinkSet->m_link_mode;
			record_id[m_NumbLink]=m_pLinkSet->m_record_id;
			m_NumbLink++;
			m_pLinkSet->MoveNext();
		}while(!m_pLinkSet->IsEOF());
	}
	CListBox *plist1=(CListBox *)GetDlgItem(IDC_LIST1);
	plist1->ResetContent();
	for(int i=0;i<m_NumbLink;i++)
	{
		nRecord=m_pDoc->GetDataIndex(database_id[i]);
		if(nRecord<0)
		{
			AfxMessageBox("不能找到数据对象");
		}
		m_str=m_pDoc->DataInfo[nRecord].Name;
		sprintf(p1,"%d",record_id[i]);
		m_str+="   ";
		m_str+=p1;
		plist1->AddString(m_str);
	}
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CDataLinkDlg::OnDataModify() 
{
	// TODO: Add your control notification handler code here
	char p1[9];
	CListBox *plist1=(CListBox *)GetDlgItem(IDC_LIST1);
	int nn=plist1->GetCurSel();
	if(link_mode[nn]==1)
	{
		if(database_id[nn]==1)
		{
			m_pSet1=&m_pDoc->m_data1;
			if(m_pSet1->IsOpen())
				m_pSet1->Close();
			m_pSet1->m_strFilter="only_id=";
			sprintf(p1,"%d",record_id[nn]);
			m_pSet1->m_strFilter+=p1;
			m_pSet1->Open();
			CData1Dlg pDg1(m_pSet1,0,0);
			pDg1.DoModal();
		}
	}
}

void CDataLinkDlg::OnLinkDelete() 
{
	// TODO: Add your control notification handler code here
	CListBox *plist1=(CListBox *)GetDlgItem(IDC_LIST1);
	int nn=plist1->GetCurSel();
	m_pLinkSet->MoveFirst();
	m_pLinkSet->Move(nn);
	m_pLinkSet->Delete();
	m_pLinkSet->Close();
	SendMessage(WM_INITDIALOG);
	if(nn>=m_NumbLink)
		plist1->SetCurSel(m_NumbLink-1);
	else
		plist1->SetCurSel(nn-1);
}

⌨️ 快捷键说明

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