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

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

?? stmeditorview.cpp

?? 電子交通地圖
?? CPP
字號:
// STMEditorView.cpp : implementation of the CSTMEditorView class
//

#include "stdafx.h"
#include "STMEditor.h"

#include "STMEditorDoc.h"
#include "STMEditorView.h"

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

#include "mainfrm.h"
/////////////////////////////////////////////////////////////////////////////
// CSTMEditorView

IMPLEMENT_DYNCREATE(CSTMEditorView, CScrollView)

BEGIN_MESSAGE_MAP(CSTMEditorView, CScrollView)
	//{{AFX_MSG_MAP(CSTMEditorView)
	ON_WM_SETCURSOR()
	ON_WM_LBUTTONUP()
	ON_WM_RBUTTONUP()
	ON_WM_MOUSEMOVE()
	ON_COMMAND(ID_VIEW_CROSS, OnViewCross)
	ON_COMMAND(ID_VIEW_PATH, OnViewPath)
	ON_COMMAND(ID_VIEW_REFRESH, OnViewRefresh)
	ON_WM_LBUTTONDOWN()
	ON_WM_KEYDOWN()
	ON_COMMAND(ID_VIEW_OBJBROWSE, OnViewObjbrowse)
	ON_WM_CREATE()
	ON_COMMAND(ID_TOOL_DRAWSEL, OnToolDrawsel)
	ON_COMMAND(ID_VIEW_ADDRESS, OnViewAddress)
	ON_COMMAND(ID_VIEW_BK, OnViewBk)
	ON_COMMAND(ID_VIEW_BS, OnViewBs)
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND_RANGE(ID_FUNC_BROWSE,ID_FUNC_ADDRESS,OnFuncChange)
	ON_COMMAND(ID_FILE_PRINT, CScrollView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CScrollView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CScrollView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSTMEditorView construction/destruction

CSTMEditorView::CSTMEditorView()
{
	// TODO: add construction code here
	m_curBrowse=AfxGetApp()->LoadCursor(IDC_BROWSE);
	m_curCross=AfxGetApp()->LoadCursor(IDC_LOCCROSS);
	m_curPath=AfxGetApp()->LoadCursor(IDC_LOCPATH);
	m_curBS=AfxGetApp()->LoadCursor(IDC_LOCBS);
	m_curTR=AfxGetApp()->LoadCursor(IDC_LOCTR);
	m_curStreet=AfxGetApp()->LoadCursor(IDC_LOCSTREET);
	m_curAddress=AfxGetApp()->LoadCursor(IDC_LOCADDRESS);
	m_Cursor=m_curCross;
	m_curTool=0;
}

CSTMEditorView::~CSTMEditorView()
{
}

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

	return CScrollView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CSTMEditorView drawing

void CSTMEditorView::OnDraw(CDC* pDC)
{
	CSTMEditorDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
	POINT	point;
	CRect	rect;
	point=GetScrollPosition();
	GetClientRect(&rect);
	rect.OffsetRect(point);
	if(pDoc->m_Picture&&pDoc->m_bViewBK)
		pDoc->m_Picture.Render(pDC,point.x,point.y,rect.Width(),rect.Height(),point.x,point.y,rect.Width(),rect.Height());
	else
		pDC->FillSolidRect(&rect,RGB(255,255,255));
	if(pDoc->m_bViewPath) m_ehPath.DrawAllPathes();
	if(pDoc->m_bViewCross) m_ehCross.DrawAllCrosses();
	if(pDoc->m_bViewBS) m_ehBS.DrawAllBSes();
	if(pDoc->m_bViewAddress) m_ehAddress.DrawAllAddresses();
}

void CSTMEditorView::OnInitialUpdate()
{
	CScrollView::OnInitialUpdate();
	UpdateToolbarState();
	OnFuncChange(ID_FUNC_BROWSE);
	m_ehCross.m_pDoc=GetDocument();
	m_ehCross.m_pMapView=this;
	m_ehPath.m_pDoc=GetDocument();
	m_ehPath.m_pMapView=this;
	m_ehBS.m_pDoc=GetDocument();
	m_ehBS.m_pMapView=this;
	m_ehTR.m_pDoc=GetDocument();
	m_ehTR.m_pMapView=this;
	m_ehStreet.m_pDoc=GetDocument();
	m_ehStreet.m_pMapView=this;
	m_ehAddress.m_pDoc=GetDocument();
	m_ehAddress.m_pMapView=this;

	
	m_objBrowseDlg.m_pDoc=GetDocument();
}

/////////////////////////////////////////////////////////////////////////////
// CSTMEditorView printing

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

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

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

/////////////////////////////////////////////////////////////////////////////
// CSTMEditorView diagnostics

#ifdef _DEBUG
void CSTMEditorView::AssertValid() const
{
	CScrollView::AssertValid();
}

void CSTMEditorView::Dump(CDumpContext& dc) const
{
	CScrollView::Dump(dc);
}

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

/////////////////////////////////////////////////////////////////////////////
// CSTMEditorView message handlers

void CSTMEditorView::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint) 
{
	CSTMEditorDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
	CSize sizeTotal;
	// TODO: calculate the total size of this view
	sizeTotal.cx= pDoc->m_Width,sizeTotal.cy=pDoc->m_Height;
	SetScrollSizes(MM_TEXT, sizeTotal);	
	Invalidate();
}

BOOL CSTMEditorView::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) 
{
	if(nHitTest==HTCLIENT)
	{
		::SetCursor(m_Cursor);
		return TRUE;
	}else
		return CScrollView::OnSetCursor(pWnd, nHitTest, message);
}

void CSTMEditorView::OnLButtonUp(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	CScrollView::OnLButtonUp(nFlags, point);
	m_ehCross.OnLButtonUp(nFlags,point);
	m_ehPath.OnLButtonUp(nFlags,point);
	m_ehBS.OnLButtonUp(nFlags,point);
	m_ehTR.OnLButtonUp(nFlags,point);
	m_ehStreet.OnLButtonUp(nFlags,point);
	m_ehAddress.OnLButtonUp(nFlags,point);
}

void CSTMEditorView::OnRButtonUp(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	CScrollView::OnRButtonUp(nFlags, point);
	m_ehCross.OnRButtonUp(nFlags,point);
	m_ehPath.OnRButtonUp(nFlags,point);
	m_ehBS.OnRButtonUp(nFlags,point);
	m_ehTR.OnRButtonUp(nFlags,point);
	m_ehStreet.OnRButtonUp(nFlags,point);
	m_ehAddress.OnRButtonUp(nFlags,point);
}


void CSTMEditorView::OnMouseMove(UINT nFlags, CPoint point) 
{
	CScrollView::OnMouseMove(nFlags, point);
	CSTMEditorDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	CPoint	originpoint,tmpPt;
	tmpPt=point;
	originpoint=GetScrollPosition();
	tmpPt.Offset(originpoint);
	CMainFrame *frame=(CMainFrame *)AfxGetMainWnd();
	frame->UpdateStatusBarPosPane(tmpPt);
	if(pDoc->m_activeType!=ACT_CROSS_MOVE)
	{
		pDoc->GetFocusInfo(tmpPt);
		if(pDoc->m_focusEI.index!=-1)
		{
			CString msg;
			CString	type;
			switch (pDoc->m_focusEI.eleType)
			{
			case ET_CROSS: type="cross";break;
			case ET_BS:type="bus station";break;
			case ET_PATH:type="path";break;
			case ET_ADDRESS:type="address";break;
			default:type="error";break;
			}
			msg.Format("TYPE:%s;ID:%d",type,pDoc->m_focusEI.index);
			frame->SetMessageText(msg);
		}else
			frame->SetMessageText("no focus");
	}
	m_ehCross.OnMouseMove(nFlags,point);
	m_ehPath.OnMouseMove(nFlags,point);
	m_ehBS.OnMouseMove(nFlags,point);
	m_ehAddress.OnMouseMove(nFlags,point);
}



void CSTMEditorView::OnViewCross() 
{
	// TODO: Add your command handler code here
	CSTMEditorDoc *pDoc=GetDocument();
	pDoc->m_bViewCross=!pDoc->m_bViewCross;	
	UpdateToolbarState();
	Invalidate(FALSE);
}

void CSTMEditorView::OnViewPath() 
{
	// TODO: Add your command handler code here
	CSTMEditorDoc *pDoc=GetDocument();
	pDoc->m_bViewPath=!pDoc->m_bViewPath;	
	UpdateToolbarState();
	Invalidate(FALSE);
}

void CSTMEditorView::UpdateToolbarState()
{
	CMainFrame *frame=(CMainFrame *)AfxGetMainWnd();
	CSTMEditorDoc *pDoc=GetDocument();
	frame->m_wndToolBar.GetToolBarCtrl().CheckButton(ID_VIEW_CROSS,pDoc->m_bViewCross);
	frame->m_wndToolBar.GetToolBarCtrl().CheckButton(ID_VIEW_PATH,pDoc->m_bViewPath);
	frame->m_wndToolBar.GetToolBarCtrl().CheckButton(ID_VIEW_BK,pDoc->m_bViewBK);
	frame->m_wndToolBar.GetToolBarCtrl().CheckButton(ID_VIEW_BS,pDoc->m_bViewBS);
	frame->m_wndToolBar.GetToolBarCtrl().CheckButton(ID_VIEW_ADDRESS,pDoc->m_bViewAddress);
}


void CSTMEditorView::OnFuncChange(UINT func) 
{
	// TODO: Add your command handler code here
	CMainFrame *frame=(CMainFrame *)AfxGetMainWnd();
	CSTMEditorDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	if(m_curTool!=0)
		frame->m_wndFuncBar.GetToolBarCtrl().CheckButton(m_curTool,FALSE);
	m_curTool=func;
	frame->m_wndFuncBar.GetToolBarCtrl().CheckButton(m_curTool,TRUE);
	switch(func)	
	{
	case ID_FUNC_BROWSE://browse
		m_Cursor=m_curBrowse;
		pDoc->m_activeType=ACT_BROWSE;
		pDoc->m_selTool=ST_BROWSE;
		break;
	case ID_FUNC_CROSS://cross
		m_Cursor=m_curCross;
		pDoc->m_activeType=ACT_CROSS_PICK;
		pDoc->m_selTool=ST_CROSS;
		break;
	case ID_FUNC_STATION:	//bus station
		m_Cursor=m_curBS;
		pDoc->m_activeType=ACT_BS_PICK;
		pDoc->m_selTool=ST_BS;
		break;
	case ID_FUNC_PATH://path
		m_Cursor=m_curPath;
		pDoc->m_activeType=ACT_PATH_PICK_BEGIN;
		pDoc->m_selTool=ST_PATH;
		break;
	case ID_FUNC_TRAFFIC:	//traffic
		m_Cursor=m_curTR;
		pDoc->m_activeType=ACT_TR_PICK_BEGIN;
		pDoc->m_selTool=ST_TRAFFIC;
		break;
	case ID_FUNC_STREET:
		m_Cursor=m_curStreet;
		pDoc->m_activeType=ACT_STREET_PICK_BEGIN;
		pDoc->m_selTool=ST_STREET;
		break;
	case ID_FUNC_ADDRESS:
		m_Cursor=m_curAddress;
		pDoc->m_activeType=ACT_ADDRESS_PICK;
		pDoc->m_selTool=ST_ADDRESS;
		break;
	}
}

void CSTMEditorView::OnViewRefresh() 
{
	Invalidate(FALSE);	
}

void CSTMEditorView::OnLButtonDown(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	CScrollView::OnLButtonDown(nFlags, point);
	ClearElementsSelFlag();
	m_ehCross.OnLButtonDown(nFlags, point);
	m_ehPath.OnLButtonDown(nFlags, point);
	m_ehBS.OnLButtonDown(nFlags, point);
	m_ehAddress.OnLButtonDown(nFlags, point);
}

void CSTMEditorView::DrawSelElements()
{
	CSTMEditorDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	ELEINFO	ei;
	for(int i=0;i<pDoc->m_arrSel.GetSize();i++)
	{
		ei=pDoc->m_arrSel.GetAt(i);
		switch(ei.eleType)
		{
		case ET_CROSS:
			m_ehCross.DrawCross(ei.index);
			break;
		case ET_PATH:
			m_ehPath.DrawPath(ei.index);
			break;
		case ET_BS:
			m_ehBS.DrawBS(ei.index);
			break;
		case ET_ADDRESS:
			m_ehAddress.DrawAddress(ei.index);
			break;
		}
	}
}

void CSTMEditorView::ClearElementsSelFlag()
{
	CSTMEditorDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	ELEINFO	ei;
	for(int i=pDoc->m_arrSel.GetSize()-1;i>=0;i--)
	{
		ei=pDoc->m_arrSel.GetAt(i);
		pDoc->m_arrSel.RemoveAt(i);
		switch(ei.eleType)
		{
		case ET_CROSS:
			m_ehCross.DrawCross(ei.index);
			break;
		case ET_PATH:
			m_ehPath.DrawPath(ei.index);
			break;
		case ET_BS:
			m_ehBS.DrawBS(ei.index);
			break;
		case ET_ADDRESS:
			m_ehAddress.DrawAddress(ei.index);
			break;
		}
	}
}

void CSTMEditorView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) 
{
	CScrollView::OnKeyDown(nChar, nRepCnt, nFlags);
}

void CSTMEditorView::OnViewObjbrowse() 
{
	m_objBrowseDlg.ShowWindow(SW_SHOW);	
	m_objBrowseDlg.OnRefresh();
}

int CSTMEditorView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CScrollView::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	m_objBrowseDlg.Create(CSTMObjBrowseDlg::IDD,this);
	m_objBrowseDlg.m_pView=this;
	return 0;
}

void CSTMEditorView::OnToolDrawsel() 
{
	MessageBox("drawSel");
	DrawSelElements();	
}


void CSTMEditorView::OnViewAddress() 
{
	CSTMEditorDoc *pDoc=GetDocument();
	pDoc->m_bViewAddress=!pDoc->m_bViewAddress;	
	UpdateToolbarState();
	Invalidate(FALSE);	
}

void CSTMEditorView::OnViewBk() 
{
	CSTMEditorDoc *pDoc=GetDocument();
	pDoc->m_bViewBK=!pDoc->m_bViewBK;	
	UpdateToolbarState();
	Invalidate(FALSE);	
}

void CSTMEditorView::OnViewBs() 
{
	CSTMEditorDoc *pDoc=GetDocument();
	pDoc->m_bViewBS=!pDoc->m_bViewBS;	
	UpdateToolbarState();
	Invalidate(FALSE);	// TODO: Add your command handler code here
	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产91精品入口| 午夜精品久久久久久不卡8050| 黄色小说综合网站| 欧美成人vr18sexvr| 国内精品写真在线观看| 国产午夜精品久久久久久久 | 不卡的av电影| 亚洲精品ww久久久久久p站| 在线观看一区二区精品视频| 亚洲午夜激情网站| 日韩欧美高清dvd碟片| 国产伦精品一区二区三区视频青涩| 久久精品一区四区| 色综合天天天天做夜夜夜夜做| 亚洲一区视频在线观看视频| 91精品国产综合久久久久久久久久 | 国产成人啪免费观看软件| 国产精品国产三级国产| 欧美日韩电影在线播放| 韩国中文字幕2020精品| 亚洲视频中文字幕| 制服丝袜av成人在线看| 高清国产一区二区三区| 亚洲图片欧美色图| 精品国产乱码久久久久久久| eeuss鲁片一区二区三区在线观看| 亚洲男同性视频| 欧美xxxxx裸体时装秀| 92精品国产成人观看免费 | 自拍av一区二区三区| 欧美撒尿777hd撒尿| 激情六月婷婷久久| 亚洲一区欧美一区| 国产欧美精品国产国产专区| 欧美精品久久一区| 99国产精品久久| 激情欧美一区二区| 偷拍一区二区三区四区| 欧美国产激情二区三区| 日韩欧美国产麻豆| 在线免费av一区| 成人开心网精品视频| 蜜桃av噜噜一区| 亚洲一区自拍偷拍| 国产精品久久久久影院亚瑟| 日韩欧美一级在线播放| 色哟哟在线观看一区二区三区| 国产一区二区三区视频在线播放| 亚洲午夜三级在线| 亚洲欧洲性图库| 国产亚洲成aⅴ人片在线观看| 欧美伦理电影网| 色噜噜狠狠色综合欧洲selulu| 国产东北露脸精品视频| 开心九九激情九九欧美日韩精美视频电影| 亚洲女厕所小便bbb| 亚洲欧美在线aaa| 国产日韩欧美激情| 欧美精品一区二区三区四区| 欧美日韩在线综合| 欧美无人高清视频在线观看| 色偷偷成人一区二区三区91| 成人黄色在线视频| 成人av网在线| 成人app软件下载大全免费| 国产乱码字幕精品高清av| 久久99精品久久久久久久久久久久| 亚洲图片欧美视频| 午夜久久久久久| 午夜欧美大尺度福利影院在线看| 一级女性全黄久久生活片免费| 亚洲美女偷拍久久| 一区二区三区毛片| 一区二区三区四区五区视频在线观看 | 一区二区三区精品在线| 亚洲婷婷在线视频| 亚洲男同1069视频| 亚洲精品欧美综合四区| 一级特黄大欧美久久久| 亚洲成人动漫精品| 日精品一区二区三区| 欧美aaaaa成人免费观看视频| 视频一区二区欧美| 免费一区二区视频| 激情av综合网| 成人动漫精品一区二区| 色综合天天综合给合国产| 欧美综合一区二区三区| 欧美精品久久一区二区三区| 精品少妇一区二区三区免费观看| 精品美女在线观看| 国产性色一区二区| 1024成人网| 午夜不卡av在线| 精品一区二区三区香蕉蜜桃| 国产一区二区毛片| 91麻豆高清视频| 欧美日韩免费高清一区色橹橹| 欧美精品在线一区二区三区| 欧美videofree性高清杂交| 久久久美女毛片| 亚洲视频免费看| 日韩一区欧美二区| 国产精品综合一区二区三区| 91麻豆成人久久精品二区三区| 欧美性xxxxxxxx| 亚洲精品在线网站| 亚洲欧美日韩小说| 美脚の诱脚舐め脚责91 | 色综合一区二区| 欧美一级高清大全免费观看| 国产亚洲午夜高清国产拍精品| 亚洲欧美色图小说| 日本最新不卡在线| 成人免费高清在线观看| 69成人精品免费视频| 国产精品色婷婷久久58| 日韩综合小视频| 成人毛片在线观看| 日韩精品自拍偷拍| 亚洲三级久久久| 久久不见久久见中文字幕免费| 99re成人在线| 久久久久国产免费免费| 三级亚洲高清视频| 99re6这里只有精品视频在线观看| 欧美一区二区日韩一区二区| 亚洲啪啪综合av一区二区三区| 免费观看一级特黄欧美大片| aaa亚洲精品一二三区| 日韩一级大片在线观看| 亚洲欧美日韩系列| 成人激情免费网站| 久久亚洲一区二区三区四区| 午夜av一区二区三区| 91蝌蚪porny成人天涯| 久久久久青草大香线综合精品| 亚洲成va人在线观看| heyzo一本久久综合| 久久综合久久鬼色中文字| 性做久久久久久免费观看| 99久久精品免费看| 国产日韩精品一区| 精品一二三四区| 91麻豆精品国产| 丝袜诱惑制服诱惑色一区在线观看| www.久久精品| 国产精品丝袜久久久久久app| 精品无人码麻豆乱码1区2区| 欧美区一区二区三区| 一区二区三区不卡视频| 91麻豆国产在线观看| 中文字幕巨乱亚洲| 国产精品一级在线| 久久影院视频免费| 黑人巨大精品欧美黑白配亚洲| 日韩欧美国产一区在线观看| 日韩成人午夜精品| 欧美日韩激情一区二区三区| 一区二区三区四区av| 91国偷自产一区二区开放时间 | 男男成人高潮片免费网站| 欧美日韩亚洲不卡| 亚洲成人av资源| 欧美一区二区三区性视频| 日韩经典一区二区| 欧美一级艳片视频免费观看| 天堂一区二区在线| 日韩一区二区三区在线| 麻豆国产精品777777在线| 欧美一区二区精品在线| 美女网站在线免费欧美精品| 欧美mv和日韩mv的网站| 国内精品国产三级国产a久久| 精品国产伦一区二区三区免费| 另类专区欧美蜜桃臀第一页| 精品国产乱码久久久久久老虎| 久久精品72免费观看| 久久亚洲精品国产精品紫薇| 国产福利一区二区三区视频 | 日韩中文欧美在线| 91精品国产乱| 国产综合久久久久久鬼色| 亚洲国产精品99久久久久久久久| 成人sese在线| 亚洲地区一二三色| 日韩亚洲欧美成人一区| 国产九色精品成人porny| 中文字幕日韩欧美一区二区三区| 色狠狠综合天天综合综合| 午夜精品免费在线| 久久久久久99精品| 91小视频免费观看| 青椒成人免费视频| 日本一区二区三区电影| 在线欧美一区二区| 精品制服美女丁香| 亚洲欧洲无码一区二区三区| 欧美麻豆精品久久久久久| 国产成人高清视频|