亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? serialsampleview.cpp

?? 利用MapX+Vc實現GIS系統簡單功能
?? CPP
字號:
// SerialSampleView.cpp : implementation of the CSerialSampleView class
//
/* This sample application and corresponding sample code is provided 
 * for example purposes only.  It has not undergone rigorous testing 
 * and as such should not be shipped as part of a final application 
 * without extensive testing on the part of the organization releasing 
 * the end-user product.
 */

#include "stdafx.h"
#include "SerialSample.h"

#include "SerialSampleDoc.h"
#include "SerialSampleView.h"
#include "ChooseListDialog.h"
#include "AddThemeDialog.h"

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

/////////////////////////////////////////////////////////////////////////////
// CSerialSampleView

IMPLEMENT_DYNCREATE(CSerialSampleView, CView)

BEGIN_MESSAGE_MAP(CSerialSampleView, CView)
	//{{AFX_MSG_MAP(CSerialSampleView)
	ON_WM_SIZE()
	ON_WM_SETFOCUS()
	ON_COMMAND(ID_ARROW_TOOL, OnArrowTool)
	ON_UPDATE_COMMAND_UI(ID_ARROW_TOOL, OnUpdateArrowTool)
	ON_COMMAND(ID_ZOOMIN_TOOL, OnZoominTool)
	ON_UPDATE_COMMAND_UI(ID_ZOOMIN_TOOL, OnUpdateZoominTool)
	ON_COMMAND(ID_ZOOMOUT_TOOL, OnZoomoutTool)
	ON_UPDATE_COMMAND_UI(ID_ZOOMOUT_TOOL, OnUpdateZoomoutTool)
	ON_COMMAND(ID_ADD_DATA, OnAddData)
	ON_COMMAND(ID_ADD_THEME, OnAddTheme)
	ON_UPDATE_COMMAND_UI(ID_ADD_THEME, OnUpdateAddTheme)
	ON_COMMAND(ID_LAYER_CONTROLS, OnLayerControls)
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
END_MESSAGE_MAP()

BEGIN_EVENTSINK_MAP(CSerialSampleView, CView)
	ON_EVENT(CSerialSampleView, IDC_MAP, MAPX_DISPID_THEMEMODIFYREQUESTED, OnMapThemeModifyRequested, VTS_DISPATCH)
END_EVENTSINK_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSerialSampleView construction/destruction

CSerialSampleView::CSerialSampleView()
{
	// TODO: add construction code here

}

CSerialSampleView::~CSerialSampleView()
{
}

BOOL CSerialSampleView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CSerialSampleView drawing

void CSerialSampleView::OnDraw(CDC* pDC)
{
	CSerialSampleDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
}

/////////////////////////////////////////////////////////////////////////////
// CSerialSampleView printing

BOOL CSerialSampleView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void CSerialSampleView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add extra initialization before printing
}

void CSerialSampleView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add cleanup after printing
}

/////////////////////////////////////////////////////////////////////////////
// CSerialSampleView diagnostics

#ifdef _DEBUG
void CSerialSampleView::AssertValid() const
{
	CView::AssertValid();
}

void CSerialSampleView::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}

CSerialSampleDoc* CSerialSampleView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CSerialSampleDoc)));
	return (CSerialSampleDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CSerialSampleView message handlers

void CSerialSampleView::OnSize(UINT nType, int cx, int cy) 
{
	CView::OnSize(nType, cx, cy);
	
	CMapX* map = GetDocument()->GetMap();
	if(map != NULL)
		map->MoveWindow(0,0,cx,cy);
}

void CSerialSampleView::OnSetFocus(CWnd* pOldWnd) 
{
	CView::OnSetFocus(pOldWnd);
	
	CMapX* map = GetDocument()->GetMap();
	if(map != NULL)
		map->SetFocus();
}

void CSerialSampleView::OnArrowTool() 
{
	try {
		CMapX* map = GetDocument()->GetMap();
		if(map != NULL)
			map->SetCurrentTool(miArrowTool);
	} catch(COleDispatchException* e) {
		e->ReportError();
		e->Delete();
	} catch(COleException* e) {
		e->ReportError();
		e->Delete();
	}
}

void CSerialSampleView::OnUpdateArrowTool(CCmdUI* pCmdUI) 
{
	try {
		CMapX* map = GetDocument()->GetMap();
		if(map != NULL) {
			pCmdUI->Enable(TRUE);
			pCmdUI->SetCheck(map->GetCurrentTool() == miArrowTool);
		} else
			pCmdUI->Enable(FALSE);
	} catch(COleDispatchException* e) {
		e->ReportError();
		e->Delete();
	} catch(COleException* e) {
		e->ReportError();
		e->Delete();
	}
}

void CSerialSampleView::OnZoominTool() 
{
	try {
		CMapX* map = GetDocument()->GetMap();
		if(map != NULL)
			map->SetCurrentTool(miZoomInTool);
	} catch(COleDispatchException* e) {
		e->ReportError();
		e->Delete();
	} catch(COleException* e) {
		e->ReportError();
		e->Delete();
	}

}

void CSerialSampleView::OnUpdateZoominTool(CCmdUI* pCmdUI) 
{
	try {
		CMapX* map = GetDocument()->GetMap();
		if(map != NULL) {
			pCmdUI->Enable(TRUE);
			pCmdUI->SetCheck(map->GetCurrentTool() == miZoomInTool);
		} else
			pCmdUI->Enable(FALSE);
	} catch(COleDispatchException* e) {
		e->ReportError();
		e->Delete();
	} catch(COleException* e) {
		e->ReportError();
		e->Delete();
	}
}

void CSerialSampleView::OnZoomoutTool() 
{
	try {
		CMapX* map = GetDocument()->GetMap();
		if(map != NULL)
			map->SetCurrentTool(miZoomOutTool);
	} catch(COleDispatchException* e) {
		e->ReportError();
		e->Delete();
	} catch(COleException* e) {
		e->ReportError();
		e->Delete();
	}
}

void CSerialSampleView::OnUpdateZoomoutTool(CCmdUI* pCmdUI) 
{
	try {
		CMapX* map = GetDocument()->GetMap();
		if(map != NULL) {
			pCmdUI->Enable(TRUE);
			pCmdUI->SetCheck(map->GetCurrentTool() == miZoomOutTool);
		} else
			pCmdUI->Enable(FALSE);
	} catch(COleDispatchException* e) {
		e->ReportError();
		e->Delete();
	} catch(COleException* e) {
		e->ReportError();
		e->Delete();
	}
}

void CSerialSampleView::OnMapThemeModifyRequested(LPDISPATCH theme) {
	CMapXTheme themeObj;
	COptionalVariant optVt;
	themeObj.AttachDispatch(theme, FALSE);
	// This function shows the Theme Modification dialog when the Legend
	// for the theme is double clicked upon.
	// If the control key is being held down, however,  the Legend modification
	// dialog is shown instead.
	// The optional paraemters specify the help file (we don't have one).
	try {
		if(GetAsyncKeyState(VK_CONTROL)) {
			themeObj.GetLegend().LegendDlg(optVt, optVt);
		} else {
			themeObj.ThemeDlg(optVt, optVt);
		}
	} catch (COleDispatchException *e) {
		e->ReportError();
		e->Delete();
	} catch (COleException *e) {
		e->ReportError();
		e->Delete();
	}
}

void CSerialSampleView::OnAddData() 
{
	CStringList tables;
	CDaoDatabase* db = GetDocument()->GetDB();
	if(db == NULL) {
		CString msg;
		try {	
			msg.Format("Could not open database %s", GetDocument()->GetDBPath());
		} catch(CString s) {
			msg = s; // GetDBPath will throw an appropriate error if it can't find the database.
		}
		AfxMessageBox(msg);
		return;
	}

	int nCount = db->GetTableDefCount();
	CDaoTableDefInfo info;
	for(int i = 0; i < nCount; i++) {
		db->GetTableDefInfo(i, info);
		// Add all non system tables to the list
		if(!(info.m_lAttributes & dbSystemObject) && !(info.m_lAttributes & dbHiddenObject))
			tables.AddTail(info.m_strName);
	}

	CMapX* map = GetDocument()->GetMap();
	if(map == NULL) {
		AfxMessageBox("Add Data called without a Map control");
		return;
	}

	// Then, remove all the tables which we've already added as datasets.
	CMapXDatasets datasets = map->GetDatasets();
	nCount = datasets.GetCount();
	for(i = 1; i <= nCount; i++) {
		POSITION pos = tables.Find(datasets.Item(i).GetName());
		if(pos != NULL)
			tables.RemoveAt(pos);
	}
	
	if(tables.GetCount() == 0) {
		AfxMessageBox("No tables left to add");
		return;
	}

	// Now, ask the user to pick a dataset to add
	CChooseListDialog choiceDlg("Please choose a table to add:", tables, 0, this);
	
	CString choice;
	try {
		choice = choiceDlg.GetChoice();
	} catch(CString) {
		return; // Do nothing if the user doesn't pick anything
	}

	// And add the chosen table.
	GetDocument()->AddDataset(choice);
}
void CSerialSampleView::OnAddTheme() 
{	
	CMapX* map = GetDocument()->GetMap();
	if(map != NULL) {
		CAddThemeDialog dlg(map);
		dlg.DoModal();
	}
}

void CSerialSampleView::OnUpdateAddTheme(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(GetDocument()->GetMap() != NULL && GetDocument()->GetMap()->GetDatasets().GetCount() > 0);
}

void CSerialSampleView::OnLayerControls() 
{
	try {
		CMapX* map = GetDocument()->GetMap();
		COptionalVariant optVt;
		if(map != NULL)
			// The optional parameters can be used to specify a help file
			map->GetLayers().LayersDlg(optVt, optVt); 
	} catch(COleDispatchException* e) {
		e->ReportError();
		e->Delete();
	} catch(COleException* e) {
		e->ReportError();
		e->Delete();
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美性大战久久| 亚洲桃色在线一区| 国产精品久久午夜夜伦鲁鲁| 午夜精彩视频在线观看不卡| 国产自产视频一区二区三区 | 久草这里只有精品视频| 91视视频在线观看入口直接观看www | 色94色欧美sute亚洲线路一久 | 蜜臀久久久99精品久久久久久| www.欧美日韩国产在线| 日韩免费在线观看| 亚洲成人av一区二区| 99视频一区二区| 久久精品视频网| 久久99精品国产麻豆婷婷| 欧美无人高清视频在线观看| 亚洲人成小说网站色在线| 国内精品嫩模私拍在线| 欧美一级理论片| 日本在线播放一区二区三区| 欧美午夜精品理论片a级按摩| 国产精品免费人成网站| 国产成人精品午夜视频免费| 精品国产成人在线影院| 毛片一区二区三区| 欧美日韩一区不卡| 亚洲欧美日韩系列| 91色.com| 亚洲一区在线看| 在线视频一区二区免费| 亚洲自拍偷拍综合| 在线观看一区二区精品视频| 亚洲综合色区另类av| 欧美在线影院一区二区| 亚洲一卡二卡三卡四卡| 欧洲av在线精品| 天天综合天天综合色| 91.成人天堂一区| 丝袜亚洲精品中文字幕一区| 在线播放中文一区| 六月丁香婷婷久久| 欧美tk—视频vk| 懂色av一区二区三区蜜臀| 亚洲国产精品二十页| 色综合久久久久综合体桃花网| 中文字幕一区二区三区不卡在线| av在线播放不卡| 亚洲午夜国产一区99re久久| 欧美二区三区的天堂| 久久成人麻豆午夜电影| 国产亚洲成av人在线观看导航| 成人毛片视频在线观看| 一区二区三区高清在线| 欧美人与性动xxxx| 狠狠色伊人亚洲综合成人| 欧美激情中文不卡| 在线观看免费视频综合| 国内精品伊人久久久久影院对白| 国产三级精品三级在线专区| 色婷婷激情一区二区三区| 日韩福利电影在线观看| 久久影院午夜片一区| 91捆绑美女网站| 日韩经典中文字幕一区| 欧美国产日韩亚洲一区| 欧美影院精品一区| 狠狠色狠狠色综合系列| 亚洲一卡二卡三卡四卡无卡久久| 精品捆绑美女sm三区| 99re这里只有精品首页| 久久成人免费网| 一区二区免费在线播放| 亚洲精品在线电影| 欧美视频中文字幕| 国产成人免费视频网站| 亚洲成人777| 国产精品久久久久久亚洲伦| 欧美日韩情趣电影| 成人aa视频在线观看| 免费成人你懂的| 夜夜揉揉日日人人青青一国产精品| 精品国产一区二区三区久久久蜜月| 在线免费不卡视频| 成人免费黄色在线| 久久电影网电视剧免费观看| 一区二区三区在线观看国产| www激情久久| 欧美丰满高潮xxxx喷水动漫| 色婷婷久久99综合精品jk白丝| 国产精品影视网| 日本最新不卡在线| 亚洲国产精品久久人人爱| 中文字幕第一区二区| 精品久久久久久久久久久久包黑料| 91传媒视频在线播放| 成人免费福利片| 国产大片一区二区| 国产自产高清不卡| 久久国产精品99久久久久久老狼 | 日本久久电影网| 成人av资源在线观看| 国产激情视频一区二区在线观看| 美女视频第一区二区三区免费观看网站| 一区二区三区成人| 一区二区三区.www| 亚洲免费观看高清完整版在线观看 | 日韩三级精品电影久久久| 欧美日韩一卡二卡| 欧美性做爰猛烈叫床潮| 欧美性一级生活| 欧美日精品一区视频| 在线一区二区三区四区五区 | 日韩午夜在线观看视频| 欧美一区二区三区在| 日韩一级免费观看| 日韩一区二区在线看片| 欧美一区二区三区免费在线看| 欧美日韩精品免费| 欧美一区二区国产| 欧美xxxx老人做受| 国产日韩欧美不卡| 综合av第一页| 一区二区三区在线视频免费 | 亚洲区小说区图片区qvod| 亚洲色图清纯唯美| 亚洲国产人成综合网站| 亚洲1区2区3区4区| 久久99精品久久久久久动态图| 九九视频精品免费| 国产91丝袜在线播放| 99r精品视频| 欧美精品乱人伦久久久久久| 日韩视频一区二区三区在线播放| 亚洲精品一区二区三区在线观看 | 欧美mv日韩mv国产网站| 久久伊人中文字幕| 国产精品国产三级国产aⅴ中文| 日韩一区在线看| 五月天激情小说综合| 国产综合成人久久大片91| 91在线一区二区| 欧美老女人第四色| 国产视频一区二区三区在线观看| 最新中文字幕一区二区三区| 亚洲高清在线视频| 国产美女视频一区| 一本大道久久精品懂色aⅴ | 另类的小说在线视频另类成人小视频在线| 蜜桃视频第一区免费观看| 风间由美性色一区二区三区| 欧洲国内综合视频| 国产清纯美女被跳蛋高潮一区二区久久w| 一区二区中文字幕在线| 蜜臀av一区二区在线免费观看 | 久久99热狠狠色一区二区| 国产精品18久久久久久vr| 一本久久综合亚洲鲁鲁五月天| 日韩午夜激情视频| 一区二区三区四区国产精品| 久久99久久99小草精品免视看| 99精品久久久久久| 日韩三级.com| 亚洲一区在线观看网站| 丁香网亚洲国际| 69堂精品视频| 伊人开心综合网| 国产福利一区在线观看| 欧美一区欧美二区| 亚洲欧美偷拍卡通变态| 国产乱人伦偷精品视频不卡| 欧美日韩一二三| 综合色天天鬼久久鬼色| 国产一区在线观看麻豆| 欧美精品亚洲二区| 亚洲欧美日韩国产另类专区| 国产酒店精品激情| 日韩一区二区三区在线| 一区二区三区**美女毛片| aaa国产一区| 欧美国产精品中文字幕| 久久99精品国产.久久久久久| 欧美性一级生活| 亚洲黄色av一区| 97aⅴ精品视频一二三区| 日本一二三不卡| 成人免费看的视频| 久久久久9999亚洲精品| 九一久久久久久| 日韩欧美国产成人一区二区| 青青青伊人色综合久久| 91精品国产综合久久久久久久 | 国产精品伊人色| 亚洲精品在线免费观看视频| 美女国产一区二区| 日韩一区和二区| 久久精品国产99久久6| 日韩精品中文字幕在线一区| 日韩不卡一区二区| 日韩一级免费观看| 蜜臀av性久久久久蜜臀aⅴ流畅 |