?? nameindexdlg.cpp
字號:
// NameIndexDlg.cpp : implementation file
//
#include "stdafx.h"
#include "NameGis.h"
#include "NameIndexDlg.h"
#include "MainFrm.h"
#include "NameGisView.h"
#include "AppApi.h"
#include "Crack.h"
#include "HawkView.h"
// CNameIndexDlg dialog
IMPLEMENT_DYNAMIC(CNameIndexDlg, CDialog)
CNameIndexDlg::CNameIndexDlg(CWnd* pParent /*=NULL*/)
: CDialog(CNameIndexDlg::IDD, pParent)
{
}
CNameIndexDlg::~CNameIndexDlg()
{
}
void CNameIndexDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_NAMEINDEX_MAINTYPE, m_MainFilter);
DDX_Control(pDX, IDC_NAMEINDEX_CHILDCLASS, m_ChildFilter);
DDX_Control(pDX, IDC_NAMEINDEX_NAMELIST, m_NameList);
}
BEGIN_MESSAGE_MAP(CNameIndexDlg, CDialog)
ON_CBN_SELCHANGE(IDC_NAMEINDEX_MAINTYPE, OnCbnSelchangeNameindexMaintype)
ON_CBN_SELCHANGE(IDC_NAMEINDEX_CHILDCLASS, OnCbnSelchangeNameindexChildclass)
ON_EN_CHANGE(IDC_NAMEINDEX_SELECTEDNAME, OnEnChangeNameindexSelectedname)
ON_LBN_DBLCLK(IDC_NAMEINDEX_NAMELIST, OnLbnDblclkNameindexNamelist)
END_MESSAGE_MAP()
// CNameIndexDlg message handlers
//-----------------------------------------------------------------------------------------
BOOL CNameIndexDlg::OnInitDialog()
{
CDialog::OnInitDialog();
CMainFrame* pMainWnd = (CMainFrame*)AfxGetMainWnd();
CNameGisView* pMapView = (CNameGisView*)(pMainWnd->m_wndSplitter.GetPane(0,0));
//初始化大類過濾器
pMapView->LoadFilter(&m_MainFilter);
//初始化中類過濾器
pMapView->LoadFilter2(&m_ChildFilter, "(全部類型)", false);
Index_LoadData("(全部類型)", "(全部子類型)");
}
//-----------------------------------------------------------------------------------------
void CNameIndexDlg::Index_LoadData(CString szType, CString szSubType)
{
m_NameList.ResetContent();
CMainFrame* pMainWnd = (CMainFrame*)AfxGetMainWnd();
CDaoDatabase* tmpDB = new CDaoDatabase;
try
{
tmpDB->Open(pMainWnd->m_environment.m_szDBName);
}
catch (CDaoException* e)
{
DisplayDaoException(e);
delete tmpDB;
e->Delete();
return ;
}
CDaoRecordset rs(tmpDB);
try
{
int nIndex = 0;
CString szSQL;
CString szFilter = "";
if (szSubType == "(全部子類型)")
{
if(szType != "(全部類型)")
{
szFilter = "類型='" + szType + "' ";
}
}
else
{
szFilter = "中類型='" + szSubType + "' ";
}
if (szFilter == "")
szSQL = "Select * From 地名索引 Where 名稱 is not NULL Order By 名稱";
else
szSQL = "Select * From 地名索引 Where " + szFilter
+" and 名稱 is not NULL Order By 名稱";
rs.Open(dbOpenDynaset,szSQL);
while(!rs.IsEOF())
{
COleVariant var;
var = rs.GetFieldValue("名稱");
m_NameList.AddString(CCrack::strVARIANT(var));
rs.MoveNext();
}
rs.Close();
}
catch (CDaoException* e)
{
DisplayDaoException(e);
delete tmpDB;
e->Delete();
return ;
}
if(tmpDB)
{
if(tmpDB->IsOpen())
{
tmpDB->Close();
}
delete tmpDB;
tmpDB = NULL;
}
}
//-----------------------------------------------------------------------------------------
void CNameIndexDlg::OnCbnSelchangeNameindexMaintype()
{
CMainFrame* pMainWnd = (CMainFrame*)AfxGetMainWnd();
CNameGisView* pMapView = (CNameGisView*)(pMainWnd->m_wndSplitter.GetPane(0,0));
CString szType;
m_MainFilter.GetLBText(m_MainFilter.GetCurSel(), szType);
pMapView->LoadFilter2(&m_ChildFilter, szType, false);
m_ChildFilter.SetCurSel(0);
Index_LoadData(szType, "(全部子類型)");
}
//-----------------------------------------------------------------------------------------
void CNameIndexDlg::OnCbnSelchangeNameindexChildclass()
{
CString szType;
m_MainFilter.GetLBText(m_MainFilter.GetCurSel(), szType);
CString szSubType;
m_ChildFilter.GetLBText(m_ChildFilter.GetCurSel(), szSubType);
Index_LoadData(szType, szSubType);
}
//-----------------------------------------------------------------------------------------
void CNameIndexDlg::OnEnChangeNameindexSelectedname()
{
CString strName;
GetDlgItem(IDC_NAMEINDEX_SELECTEDNAME)->GetWindowText(strName);
int nIndex = m_NameList.FindString(0, strName);
if(nIndex != LB_ERR)
m_NameList.SetCurSel(nIndex);
}
//-----------------------------------------------------------------------------------------
void CNameIndexDlg::OnLbnDblclkNameindexNamelist()
{
int nIndex = m_NameList.GetCurSel();
if(nIndex < 0)
return;
CString szName;
m_NameList.GetText(nIndex, szName);
CMainFrame* pMainWnd = (CMainFrame*)AfxGetMainWnd();
pMainWnd->Position(szName);
}
//-----------------------------------------------------------------------------------------
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -