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

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

?? gisview.cpp

?? 一種新的實現鷹眼圖的方法
?? CPP
字號:
// GisView.cpp : implementation of the CGisView class
//

#include "stdafx.h"
#include "Gis.h"

#include "GisDoc.h"
#include "GisView.h"

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

/////////////////////////////////////////////////////////////////////////////
// CGisView

IMPLEMENT_DYNCREATE(CGisView, CView)

BEGIN_MESSAGE_MAP(CGisView, CView)
	//{{AFX_MSG_MAP(CGisView)
	ON_WM_SIZE()
	ON_WM_CREATE()
	ON_COMMAND(ID_LAYER, OnLayer)
	ON_COMMAND(ID_SELECT, OnSelect)
	ON_COMMAND(ID_SPAN, OnSpan)
	ON_COMMAND(ID_ZOOMIN, OnZoomIn)
	ON_COMMAND(ID_ZOOMOUT, OnZoomOut)
	ON_COMMAND(ID_LINE, OnLine)
	ON_COMMAND(ID_LABLE, OnLable)
	ON_COMMAND(ID_PLOYLINE, OnPolyLine)
	ON_COMMAND(ID_AROW, OnArrow)
	ON_COMMAND(ID_TEST, OnTest)
	ON_COMMAND(ID_EYES, OnEyes)
	//}}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()
//mapx 控件消息
BEGIN_EVENTSINK_MAP(CGisView, CView)
//使用工具時的處理
	ON_EVENT(CGisView, ID_MAP, MAPX_DISPID_TOOLUSED,
		OnToolUsed, VTS_I2 VTS_R8 VTS_R8 VTS_R8 VTS_R8 VTS_R8 VTS_BOOL
		VTS_BOOL VTS_PBOOL)
	ON_EVENT(CGisView, ID_MAP, DISPID_MOUSEUP,
		OnMouseUpInMap, VTS_I2 VTS_I2 VTS_XPOS_PIXELS VTS_YPOS_PIXELS)
END_EVENTSINK_MAP()
/////////////////////////////////////////////////////////////////////////////
// CGisView construction/destruction

CGisView::CGisView()
{
	// 建立數據庫連接
	HRESULT hr;

	hr = m_rs.CreateInstance("ADODB.Recordset");
	
	if(!SUCCEEDED(hr))
	{
		AfxMessageBox("數據庫初始化失敗!");
		return;
	}

	//連接數據庫
	hr = m_rs->Open("Select * from us_cust", "Provider=Microsoft.Jet.OLEDB.3.51;""Data Source=test.mdb",adOpenStatic, adLockReadOnly, adCmdText);
	
	if(!SUCCEEDED(hr))
	{
		AfxMessageBox("數據庫查詢失敗!");
		return;
	}

	//創建小窗口
//	m_miWindow.m_map = new CMapX;
//	m_miWindow.Create(IDD_MINIWINDOW);
}

CGisView::~CGisView()
{
	m_rs->Close();
}

BOOL CGisView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs
	
	return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CGisView drawing

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

/////////////////////////////////////////////////////////////////////////////
// CGisView printing

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

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

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

/////////////////////////////////////////////////////////////////////////////
// CGisView diagnostics

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

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

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

/////////////////////////////////////////////////////////////////////////////
// CGisView message handlers

void CGisView::OnSize(UINT nType, int cx, int cy) 
{
	CView::OnSize(nType, cx, cy);
	
	// TODO: Add your message handler code here
	m_map.MoveWindow(0,0,cx,cy);
}

int CGisView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CView::OnCreate(lpCreateStruct) == -1)
		return -1;
	if(!m_map.Create(NULL,WS_VISIBLE,CRect(0,0,100,100),this,ID_MAP))
		return -1;
			
	return 0;
}

void CGisView::OnLayer() 
{
	m_map.GetLayers().LayersDlg();
}

void CGisView::OnSelect() 
{
	// TODO: Add your command handler code here
	m_map.SetCurrentTool(miSelectTool);
}

void CGisView::OnSpan() 
{
	// TODO: Add your command handler code here
	m_map.SetCurrentTool(miPanTool);
	
	ChangeEye();
}

void CGisView::OnZoomIn() 
{
	// TODO: Add your command handler code here
	m_map.SetCurrentTool(miZoomInTool);

	ChangeEye();
}

void CGisView::OnZoomOut() 
{
	// TODO: Add your command handler code here
	m_map.SetCurrentTool(miZoomOutTool);

	ChangeEye();
}

void CGisView::OnLine() 
{
	// TODO: Add your command handler code here
	SetInsertionLayer();
	m_map.SetCurrentTool(miAddLineTool);
	
}

void CGisView::OnLable() 
{
	// TODO: Add your command handler code here
	m_map.SetCurrentTool(miLabelTool);
}

void CGisView::OnPolyLine() 
{
	// TODO: Add your command handler code here
	SetInsertionLayer();
	m_map.SetCurrentTool(miAddPolylineTool);
}

void CGisView::OnArrow() 
{
	m_map.SetCurrentTool(miArrowTool);
}

bool CGisView::SetInsertionLayer()
{
	long n;
	CMapXLayer layer;

	n = m_map.GetLayers().GetCount();
	layer = m_map.GetLayers().Item(n);

	m_map.GetLayers().Item(n).SetEditable(true);
	m_map.GetLayers().SetInsertionLayer(layer);
	
	return true;
}

void CGisView::OnTest() 
{
	//將數據顯示在地圖上

	COptionalVariant optVt;//可選變量??
	CMapXDataset ds;//數據集
	COleVariant rsVt;//數據源指針
	COleVariant BindLayerVt,FieldsVt,QueryInfoVt;
	CMapXFields Fields;
	CMapXBindLayer BindLayer;
	
	//創建對象實例
	if(!Fields.CreateDispatch(Fields.GetClsid())) {
		TRACE0("Failed to Create Fields Object");
		return;
	}

	if(!BindLayer.CreateDispatch(BindLayer.GetClsid())) {
	  TRACE0("Failed to Create BindLayer Object!");
	  return;
	 }

	rsVt.vt = VT_DISPATCH;
	rsVt.pdispVal = m_rs;
	rsVt.pdispVal->AddRef();
	

	try{
		//綁定數據
		BindLayer.SetLayerName("Customers");
		BindLayer.SetLayerType(miBindLayerTypeXY);

		BindLayer.SetRefColumn1("X");
		BindLayer.SetRefColumn2("Y");
  
		BindLayerVt.vt = VT_DISPATCH;
		BindLayerVt.pdispVal = BindLayer;
		BindLayerVt.pdispVal->AddRef();

		Fields.Add(COleVariant("COMPANY"),COleVariant("Company"),COleVariant((long)miAggregationIndividual),COleVariant((long)miTypeString));
		Fields.Add(COleVariant("X"),COleVariant("X"),COleVariant((long)miAggregationAverage),COleVariant((long)miTypeNumeric));
		
		Fields.Add(COleVariant("Y"),COleVariant("Y"),COleVariant((long)miAggregationAverage),COleVariant((long)miTypeNumeric));
		Fields.Add(COleVariant("ORDER_AMT"),COleVariant("Order_Amt"),COleVariant((long)miAggregationSum),COleVariant((long)miTypeNumeric));
		
		FieldsVt.vt = VT_DISPATCH;
		FieldsVt.pdispVal = Fields;
		FieldsVt.pdispVal->AddRef();
		
		ds = m_map.GetDatasets().Add(miDataSetADO,rsVt,COleVariant("company layer"),COleVariant("Company"),COptionalVariant(),BindLayerVt,FieldsVt,COptionalVariant());
		
		//將圖標用自定義圖表替代
		CMapXLayer layer;//指定添加的層

		layer = m_map.GetLayers().Item("Customers");
		layer.SetOverrideStyle(true);//設定覆蓋原來默認的圖標

		if(layer.GetStyle().GetSupportsBitmapSymbols())
		{
			layer.GetStyle().SetSymbolType(miSymbolTypeBitmap);
			layer.GetStyle().SetSymbolBitmapSize(12);
			layer.GetStyle().SetSymbolBitmapTransparent(true);
			layer.GetStyle().SetSymbolBitmapName("TOWE2-32.bmp");
		}

		//刷新屏幕
		m_map.Refresh();
	}
	catch (COleDispatchException *e) {
		e->ReportError();
		e->Delete();
	}
	catch (COleException *e) {
		e->ReportError();
		e->Delete();
	}	
}

void CGisView::OnEyes() 
{
	static bool flg = false;
	m_miWindow.m_GeoSet = m_map.GetGeoSet();
	if(!flg)
	{
		m_miWindow.Create(IDD_MINIWINDOW);
		
		flg = true;
	}

	ChangeEye();
	m_miWindow.ShowWindow(SW_SHOW);
}
//刷新小窗口;改變鷹眼的位置
void CGisView::ChangeEye()
{
	CRect rt;

	GetClientRect(&rt);
	float x,y,x1,y1;

	x = rt.left;
	y = rt.top;
	x1 = rt.right;
	y1 = rt.bottom;

	m_map.ConvertCoord(&x,&y,&m_miWindow.m_left,&m_miWindow.m_top,miScreenToMap);
	m_map.ConvertCoord(&x1,&y1,&m_miWindow.m_right,&m_miWindow.m_bottom,miScreenToMap);

	m_miWindow.Invalidate();
	//m_miWindow.DrawEye();
}
//使用工具時
void CGisView::OnToolUsed(short ToolNum, double X1, double Y1, double X2, double Y2, double Distance, BOOL Shift, BOOL Ctrl, BOOL* EnableDefault)
{
	CString str;
	str.Format("Tool=%d, [%f,%f] [%f, %f], dist=%f, %s %s\n",ToolNum, X1,Y1,X2,Y2,Distance,
		(Shift)?"Shift":"",(Ctrl)?"Ctrl":"");
	TRACE(str);

}
//對地圖進行單擊時
void CGisView::OnMouseUpInMap(short Button, short Shift, float X, float Y)
{
	if(Button = 1)//left button
	{
		long ToolNum;

		ToolNum = m_map.GetCurrentTool();
		if((ToolNum < 1005) && (ToolNum > 1000))//改變視窗范圍的工具
		{
			//刷新小視窗
			//m_miWindow.DrawEye();
			ChangeEye();
		}
	}

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲美女电影在线| 成a人片国产精品| 久久成人久久鬼色| 欧美三级一区二区| 一区二区在线观看视频在线观看| 国产精品888| 7777精品伊人久久久大香线蕉的| 中文一区在线播放| 韩国视频一区二区| 久久免费美女视频| 成人激情视频网站| 亚洲婷婷综合色高清在线| 91小视频免费观看| 亚洲国产精品久久一线不卡| 欧美在线观看视频在线| 亚洲国产中文字幕| 欧美日韩国产小视频| 久久99热国产| 国产日韩欧美一区二区三区综合| 国产高清不卡一区| 国产欧美一区二区精品久导航| 97久久精品人人爽人人爽蜜臀| 有码一区二区三区| 欧美精品第1页| 蜜桃传媒麻豆第一区在线观看| 2021久久国产精品不只是精品| 国产麻豆成人精品| 欧美激情一区二区三区在线| 99国产欧美久久久精品| 亚洲欧美日韩国产成人精品影院 | 成人免费毛片a| 亚洲少妇30p| 欧洲精品一区二区三区在线观看| 午夜国产精品影院在线观看| 日韩一区二区三区视频| 国产激情一区二区三区四区 | 久久精品二区亚洲w码| 久久精品亚洲精品国产欧美| 国产乱码精品一区二区三区av | 国产精品毛片久久久久久久| 色婷婷av一区二区三区大白胸 | 欧美国产日韩精品免费观看| 91极品美女在线| 日本视频在线一区| 国产精品久久久久影院色老大| 欧美色图第一页| 成人午夜在线视频| 久久精品国产精品亚洲精品| 亚洲欧美激情小说另类| 久久亚洲精品国产精品紫薇| 欧美中文字幕一区二区三区亚洲| 黑人精品欧美一区二区蜜桃| 一区二区免费视频| 国产精品国产三级国产三级人妇 | 国产精品一区二区在线观看网站| 亚洲综合清纯丝袜自拍| 国产午夜精品美女毛片视频| 欧美精品在欧美一区二区少妇| 99久久久久免费精品国产 | 国产成人亚洲精品青草天美| 日本女人一区二区三区| 一区二区三区日韩欧美精品| 国产欧美日韩三区| 欧美成人bangbros| 88在线观看91蜜桃国自产| 一本一本久久a久久精品综合麻豆| 国产成人一级电影| 另类成人小视频在线| 无吗不卡中文字幕| 亚洲一区二区三区四区中文字幕| 国产精品国产三级国产普通话99 | 日韩av成人高清| 一区二区三区免费网站| 中文字幕亚洲电影| 中文字幕av免费专区久久| 久久久久国产精品厨房| 欧美精品一区二区精品网| 日韩欧美一级特黄在线播放| 欧美一级日韩不卡播放免费| 欧美日本在线一区| 在线播放国产精品二区一二区四区| 99国产精品国产精品毛片| 99视频一区二区三区| 91性感美女视频| 91福利社在线观看| 在线日韩一区二区| 欧美日韩精品欧美日韩精品| 欧美猛男男办公室激情| 欧美日韩免费一区二区三区| 欧美日韩一区精品| 91麻豆精品国产综合久久久久久| 欧美日本一道本在线视频| 538在线一区二区精品国产| 日韩欧美一区在线| 2023国产一二三区日本精品2022| 久久精品一区二区| 中文字幕色av一区二区三区| 亚洲视频1区2区| 亚洲国产一二三| 男人操女人的视频在线观看欧美| 免费精品视频最新在线| 精品一区二区三区在线观看国产| 国产一区二区91| 91在线精品秘密一区二区| 在线欧美日韩国产| 日韩一本二本av| 国产欧美精品一区二区色综合| 国产精品久久久99| 亚洲成人第一页| 国模娜娜一区二区三区| 成人美女视频在线观看18| 在线免费观看日韩欧美| 欧美不卡一区二区三区| 中文字幕av在线一区二区三区| 洋洋成人永久网站入口| 麻豆一区二区三区| 不卡的电影网站| 在线播放国产精品二区一二区四区| 精品动漫一区二区三区在线观看| 国产精品高清亚洲| 日韩在线观看一区二区| 成人免费观看视频| 777亚洲妇女| 中文字幕一区二区三| 免费看黄色91| 色屁屁一区二区| 2020国产精品自拍| 亚洲精品乱码久久久久久久久| 久久国产尿小便嘘嘘| 91黄色免费网站| 久久久久久久久久久99999| 亚洲国产精品久久久久婷婷884| 国产综合色产在线精品 | 91精品国产免费| 国产精品不卡在线观看| 免费xxxx性欧美18vr| 色天天综合久久久久综合片| 久久综合成人精品亚洲另类欧美 | 国产伦精品一区二区三区免费迷 | 色婷婷激情综合| 欧美国产精品一区二区三区| 日本三级亚洲精品| 在线日韩av片| 国产精品久久久久一区| 狠狠色丁香久久婷婷综| 欧美日本一道本| 一区二区三区免费在线观看| 福利视频网站一区二区三区| 日韩欧美国产精品| 亚洲自拍偷拍综合| av在线不卡免费看| 国产清纯白嫩初高生在线观看91 | 国产精品色眯眯| 国内外精品视频| 欧美成人三级电影在线| 日韩电影在线一区二区| 欧美主播一区二区三区| 亚洲视频在线一区观看| 成人免费高清在线| 国产色91在线| 国产永久精品大片wwwapp| 欧美一级高清片| 日韩精品欧美成人高清一区二区| 91精品办公室少妇高潮对白| 亚洲欧美日韩综合aⅴ视频| 99久久精品国产精品久久| 国产精品美女久久久久久久久久久| 国产一区二区三区国产| 久久亚洲精品国产精品紫薇| 极品美女销魂一区二区三区免费| 日韩一区二区视频| 日韩电影在线一区| 欧美一区二区三区视频在线观看| 天堂va蜜桃一区二区三区漫画版 | 久久精品国产精品青草| 日韩一二三区视频| 国产麻豆一精品一av一免费| 26uuu亚洲| 韩国精品主播一区二区在线观看| 日韩欧美色综合网站| 国产乱码一区二区三区| 国产丝袜美腿一区二区三区| www.亚洲色图.com| 亚洲欧洲制服丝袜| 欧美图区在线视频| 日韩va亚洲va欧美va久久| 日韩欧美专区在线| 国产乱码精品一区二区三区五月婷| 国产亚洲1区2区3区| 99久久精品一区| 一区二区三区av电影| 欧美日韩国产高清一区二区 | 午夜天堂影视香蕉久久| 欧美一区二区三区视频在线观看| 九九国产精品视频| 国产精品国产三级国产专播品爱网| 91九色02白丝porn| 久久精品国产成人一区二区三区 | 国产91精品在线观看| 中文字幕一区在线观看视频|