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

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

?? drawdoc.cpp

?? 在vc下編寫的一個開發地理信息系統的程序
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
// DrawDoc.cpp : implementation of the CDrawDoc class
//
#include <float.h>
#include "stdafx.h"
#include "Draw.h"
#include <float.h>
#include <math.h>
#include "DrawDoc.h"
#include "Drawview.h"
#include "CntrItem.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
CGraphPara *p_GraphPara;	//初試化一個公用的關于圖形參數的實例
extern CDrawView *p_View;
extern CMemFile pFile;
float xMinScreen,yMinScreen,xMaxScreen,yMaxScreen;
int RunTimes=0;
extern BOOL b_Draw;
void DPtoVP(float x,float y,int *X,int *Y);
void VPtoDP(int x,int y,float *X,float *Y);
int DLtoVL(float l);
float VLtoDL(int l);

BOOL IsRectCross(float minx,float miny,float maxx,float maxy);
BOOL IsRectCross(float minx,float miny,float maxx,float maxy)
{
	if(minx>xMaxScreen||maxx<xMinScreen||miny>yMaxScreen||maxy<yMinScreen) //兩個矩形區域不相交
		return 0; //如不相交函數返回0
	else 
		return 1; //如果相交就返回1
}

void DPtoVP(float x,float y,int *X,int *Y)
{
	p_View->DPtoVP(x,y,X,Y);
}

void VPtoDP(int x,int y,float *X,float *Y)
{
	p_View->VPtoDP(x,y,X,Y);
}
				 
int DLtoVL(float l)
{
	return p_View->DLtoVL(l);
}

float VLtoDL(int l)
{
	return p_View->VLtoDL(l);
}

	/////////////////////////////////////////////////////////////////////////////
// CDrawDoc

IMPLEMENT_DYNCREATE(CDrawDoc, COleDocument)

BEGIN_MESSAGE_MAP(CDrawDoc, COleDocument)
	//{{AFX_MSG_MAP(CDrawDoc)
	ON_UPDATE_COMMAND_UI(ID_SELECT_CLEAR, OnUpdateSelectClear)
	ON_UPDATE_COMMAND_UI(ID_EDIT_UNDO, OnUpdateEditUndo)
	ON_UPDATE_COMMAND_UI(ID_SELECT_DELETE, OnUpdateSelectClear)
	ON_UPDATE_COMMAND_UI(ID_EDIT_CUT, OnUpdateSelectClear)
	ON_UPDATE_COMMAND_UI(ID_EDIT_COPY, OnUpdateSelectClear)
	ON_COMMAND(IDC_TEST, OnTest)
	//}}AFX_MSG_MAP
	// Enable default OLE container implementation
	ON_UPDATE_COMMAND_UI(ID_EDIT_PASTE, COleDocument::OnUpdatePasteMenu)
	ON_UPDATE_COMMAND_UI(ID_EDIT_PASTE_LINK, COleDocument::OnUpdatePasteLinkMenu)
	ON_UPDATE_COMMAND_UI(ID_OLE_EDIT_CONVERT, COleDocument::OnUpdateObjectVerbMenu)
	ON_COMMAND(ID_OLE_EDIT_CONVERT, COleDocument::OnEditConvert)
	ON_UPDATE_COMMAND_UI(ID_OLE_EDIT_LINKS, COleDocument::OnUpdateEditLinksMenu)
	ON_COMMAND(ID_OLE_EDIT_LINKS, COleDocument::OnEditLinks)
	ON_UPDATE_COMMAND_UI(ID_OLE_VERB_FIRST, COleDocument::OnUpdateObjectVerbMenu)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDrawDoc construction/destruction

CDrawDoc::CDrawDoc()
{

b_IsOleSelect=0;
	p_GraphPara=&m_GraphPara;	//將公用的GraphPara類的指針指向當前文檔的GraphPara對象
	n_GraphSelect=0;
	GraphSelect=new GraphSelectStruct[2000];	//最多可選中2000個圖形元素
	n_MaxUnIndex=10000;	//規定可以進行1萬步的逆操作
	m_UndoList=new UndoStruct[n_MaxUnIndex];	
	m_UndoList[0].l_Start=0;
	char p1[4];
	sprintf(p1,"%d",RunTimes);
	FileName="c:\\draw";
	FileName+=p1;
	FileName+=".tmp";
	Fundo.Open(FileName,CFile::modeCreate|CFile::modeReadWrite|CFile::typeBinary);
	RunTimes++;
	n_CurUnIndex=0;		//當前的逆操作序號為0
	EnableCompoundFile();
	m_Index=new int[20000];
	m_MaxScreen=1000;		//最多能夠記錄在100個歷史屏幕
	m_Screen=new ScreenStruct[m_MaxScreen];//給記錄歷史屏幕的數組分配空間
	//以下設置首屏的參數并將目前屏幕設置為首屏
	m_CurrentScreen=0;
	m_Screen[0].sx=0;
	m_Screen[0].sy=0;
	m_Screen[0].blc=1;
	
	strcpy(DataInfo[0].Name,"城市信息");
	DataInfo[0].only_ID=1;
	strcpy(DataInfo[1].Name,"礦產信息");
	DataInfo[1].only_ID=2;
	m_NumbData=2;	
}

CDrawDoc::~CDrawDoc()
{
	delete GraphSelect;
	delete m_UndoList;
	delete m_Index;
	delete m_Screen;
	Fundo.Close();
	remove(FileName);
}

//繪制選中的圖形元素
//Lb-圖形類別 Index-繪制圖形的序列號 Mode-繪制覆蓋模式 Mode1-繪制方式
void CDrawDoc::DrawGraph(CDC* pDC,int Lb,int Index,int Mode,int Mode1,short BackColor)
{
	if(Lb==1)		//如果是直線
		GetLine(Index)->Draw(pDC,Mode,Mode1,BackColor);
	else if(Lb==2)	//如果是連續直線
		GetPLine(Index)->Draw(pDC,Mode,Mode1,BackColor);
	else if(Lb==3)	//如果圓
		GetCircle(Index)->Draw(pDC,Mode,Mode1,BackColor);
	else if(Lb==4)	//如果是圓弧
		GetArc(Index)->Draw(pDC,Mode,Mode1,BackColor);
	else if(Lb==5)	//如果是標注文字
		GetText(Index)->Draw(pDC,Mode,Mode1,BackColor);
}

void CDrawDoc::Draw(CDC *pDC,int m_DrawMode,int m_DrawMode1,short BackColor)
{
	int nn=GetNumbLines();//得到直線的數目	
	while(b_Draw&&nn--)					//繪制所有直線
		GetLine(nn)->Draw(pDC,m_DrawMode,m_DrawMode1,BackColor);
	nn=GetNumbPLines();	//得到連續直線和多邊形區域數目
	while(b_Draw&&nn--)					//繪制所有連續直線和多邊形區域
		GetPLine(nn)->Draw(pDC,m_DrawMode,m_DrawMode1,BackColor);
	nn=GetNumbCircles();	//得到圓的數目
	while(b_Draw&&nn--)					//繪制所有圓
		GetCircle(nn)->Draw(pDC,m_DrawMode,m_DrawMode1,BackColor);
	nn=GetNumbArcs();		//得到圓弧的數目
	while(b_Draw&&nn--)					//繪制所有圓弧
		GetArc(nn)->Draw(pDC,m_DrawMode,m_DrawMode1,BackColor);
	nn=GetNumbTexts();	//得到文本的數目
	while(b_Draw&&nn--)					//繪制所有文本
		GetText(nn)->Draw(pDC,m_DrawMode,m_DrawMode1,BackColor);
	for(int i=0;i<n_GraphSelect;i++)	
		DrawGraph(pDC,GraphSelect[i].Lb,GraphSelect[i].Index,0,1,BackColor);
}

BOOL CDrawDoc::OnNewDocument()
{
	if (!COleDocument::OnNewDocument())
		return FALSE;
	return TRUE;
}

/////////////////////////////////////////////////////////////////////////////
// CDrawDoc serialization

/*
void CDrawDoc::Serialize(CArchive& ar)
{
	if (ar.IsStoring())
	{
		// TODO: add storing code here
	}
	else
	{
		//line1=new CLine	(0,0,0,0,0,0,0,0,100,100);
//		ar>>line1;
		// TODO: add loading code here
	}
	int nn=m_LineArray.GetSize();
	while(nn--)
	{
		if(m_LineArray.GetAt(nn)->IsDelete())
		{	
			delete m_LineArray.GetAt(nn);
			m_LineArray.RemoveAt(nn);
		}
	}
	nn=m_PLineArray.GetSize();
	while(nn--)
	{
		if(m_PLineArray.GetAt(nn)->IsDelete())
		{
			delete m_PLineArray.GetAt(nn);
			m_PLineArray.RemoveAt(nn);			
		}
	}
	nn=m_CircleArray.GetSize();
	while(nn--)
	{
		if(m_CircleArray.GetAt(nn)->IsDelete())
		{
			delete m_CircleArray.GetAt(nn);
			m_CircleArray.RemoveAt(nn);
		}
	}
	nn=m_ArcArray.GetSize();
	while(nn--)
	{
		if(m_ArcArray.GetAt(nn)->IsDelete())
		{
			delete m_ArcArray.GetAt(nn);
			m_ArcArray.RemoveAt(nn);
		}
	}
	nn=m_TextArray.GetSize();
	while(nn--)
	{
		if(m_TextArray.GetAt(nn)->IsDelete())
		{
			delete m_TextArray.GetAt(nn);
			m_TextArray.RemoveAt(nn);		
		}
	}
	m_LineArray.Serialize(ar);
	m_PLineArray.Serialize(ar);
	m_CircleArray.Serialize(ar);
	m_ArcArray.Serialize(ar);
	m_TextArray.Serialize(ar);
	n_CurUnIndex=0;
	SetModifiedFlag(0);
	// Calling the base class COleDocument enables serialization
	//  of the container document's COleClientItem objects.
	COleDocument::Serialize(ar);
}
*/

void CDrawDoc::Serialize(CArchive& ar)
{
	CFile *file1;
	int n_LineNumb,n_PLineNumb,n_CircleNumb,n_ArcNumb,n_TextNumb;
	file1=ar.GetFile();
	if (ar.IsStoring())
	{
		int nn=m_LineArray.GetUpperBound()+1;
		while(nn--)
		{
			if(m_LineArray.GetAt(nn)->IsDelete())
			{	
				delete m_LineArray.GetAt(nn);
				m_LineArray.RemoveAt(nn);
			}
		}
		nn=m_PLineArray.GetUpperBound()+1;
		while(nn--)
		{
			if(m_PLineArray.GetAt(nn)->IsDelete())
			{
				delete m_PLineArray.GetAt(nn);
				m_PLineArray.RemoveAt(nn);			
			}
		}
		nn=m_CircleArray.GetUpperBound()+1;
		while(nn--)
		{
			if(m_CircleArray.GetAt(nn)->IsDelete())
			{
				delete m_CircleArray.GetAt(nn);
				m_CircleArray.RemoveAt(nn);
			}
		}
		nn=m_ArcArray.GetUpperBound()+1;
		while(nn--)
		{
			if(m_ArcArray.GetAt(nn)->IsDelete())
			{
				delete m_ArcArray.GetAt(nn);
				m_ArcArray.RemoveAt(nn);
			}
		}
		nn=m_TextArray.GetUpperBound()+1;
		while(nn--)
		{
			if(m_TextArray.GetAt(nn)->IsDelete())
			{
				delete m_TextArray.GetAt(nn);
				m_TextArray.RemoveAt(nn);		
			}
			// TODO: add storing code here
		}
		n_LineNumb=m_LineArray.GetSize();
		n_PLineNumb=m_PLineArray.GetSize();
		n_CircleNumb=m_CircleArray.GetSize();
		n_ArcNumb=m_ArcArray.GetSize();
		n_TextNumb=m_TextArray.GetSize();
		file1->Write((unsigned char *)&n_LineNumb,sizeof(int));
		file1->Write((unsigned char *)&n_PLineNumb,sizeof(int));
		file1->Write((unsigned char *)&n_CircleNumb,sizeof(int));
		file1->Write((unsigned char *)&n_ArcNumb,sizeof(int));
		file1->Write((unsigned char *)&n_TextNumb,sizeof(int));
		if(n_LineNumb>0)
		{
			nn=m_LineArray.GetUpperBound()+1;
			while(nn--)
			{
				if(m_LineArray.GetAt(nn))

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品一二三| 欧美在线高清视频| 依依成人精品视频| 久久综合久久综合亚洲| 欧美日韩国产色站一区二区三区| eeuss影院一区二区三区| 久久成人麻豆午夜电影| 石原莉奈一区二区三区在线观看| 亚洲免费观看高清完整| 一区二区在线免费观看| 国产精品中文字幕日韩精品 | 一区二区三区欧美日韩| 亚洲伦理在线精品| 国产在线观看免费一区| 国产一区二区免费视频| 91精品国产欧美日韩| 91 com成人网| 精品国产欧美一区二区| 2021中文字幕一区亚洲| 日本aⅴ免费视频一区二区三区| 日韩成人一级大片| 国产一区二区三区蝌蚪| 这里只有精品99re| 五月天一区二区| 韩国成人福利片在线播放| 成人高清在线视频| 欧美色精品天天在线观看视频| 69久久夜色精品国产69蝌蚪网| 亚洲尤物在线视频观看| 午夜激情久久久| 欧美撒尿777hd撒尿| 一级女性全黄久久生活片免费| youjizz国产精品| 中文字幕中文字幕中文字幕亚洲无线| 日韩毛片在线免费观看| 日韩av在线发布| 欧美一级电影网站| 1024成人网| 奇米精品一区二区三区四区| 欧美日韩免费在线视频| 午夜激情久久久| 日韩视频在线一区二区| 日本v片在线高清不卡在线观看| 欧美乱妇23p| 麻豆精品一区二区综合av| 成人av资源网站| 亚洲精品国产视频| 精品污污网站免费看| 午夜视频久久久久久| 日韩一区二区三免费高清| 人人狠狠综合久久亚洲| 久久婷婷久久一区二区三区| 从欧美一区二区三区| 日韩欧美中文字幕精品| 欧美午夜电影一区| 久久综合久久综合久久综合| 国产91精品久久久久久久网曝门| 欧美三区在线视频| 精品一区在线看| 56国语精品自产拍在线观看| 免费观看一级欧美片| 国产亚洲人成网站| 久久综合综合久久综合| 国产欧美精品一区二区色综合 | 亚洲免费av高清| 91精品国产一区二区三区蜜臀| 久久99精品国产麻豆婷婷| 国产精品人成在线观看免费 | 91亚洲大成网污www| 久久久www成人免费毛片麻豆 | 91视视频在线观看入口直接观看www | 亚洲素人一区二区| 91精品国产乱码| 成人h精品动漫一区二区三区| 亚洲一区二区在线免费看| 精品蜜桃在线看| 毛片av中文字幕一区二区| 中文字幕免费一区| 国产成人欧美日韩在线电影| 久久综合色播五月| 欧美日韩在线直播| 懂色av一区二区三区蜜臀| 亚洲va国产天堂va久久en| 欧美日韩一区二区三区免费看| 久久99精品国产91久久来源| 亚洲另类中文字| 欧美国产丝袜视频| 日韩免费一区二区| 国产精品中文字幕日韩精品| 亚洲第一狼人社区| 亚洲欧美综合色| 精品国产sm最大网站免费看| 欧美揉bbbbb揉bbbbb| 不卡在线观看av| 国产精品自产自拍| 日韩综合小视频| 一区二区成人在线| 中文字幕制服丝袜成人av| 久久午夜老司机| 日韩三级中文字幕| 91麻豆精品91久久久久久清纯| 91在线观看成人| 北岛玲一区二区三区四区| 精品一区二区三区不卡| 五月激情综合色| 亚洲成av人片一区二区梦乃| 亚洲色图一区二区三区| 中文一区二区在线观看| 国产日产精品1区| 国产日韩精品一区二区三区在线| 26uuu精品一区二区三区四区在线| 在线综合亚洲欧美在线视频| 欧美日韩电影一区| 欧美欧美欧美欧美首页| 欧美日韩国产天堂| 欧美一区二区久久久| 91麻豆精品国产91| 日韩视频在线一区二区| 日韩手机在线导航| 久久这里只精品最新地址| 精品欧美久久久| 久久精品一区二区三区四区| 久久色.com| 国产精品全国免费观看高清| 欧美极品美女视频| 国产精品毛片久久久久久久| 国产精品动漫网站| 亚洲一区二区精品久久av| 亚洲国产一区二区三区| 国产日韩欧美精品综合| 久久精品欧美日韩精品| 久久黄色级2电影| 精品综合免费视频观看| 国产一区二区三区香蕉| 成人18视频在线播放| 99久久婷婷国产综合精品电影| 肉丝袜脚交视频一区二区| 强制捆绑调教一区二区| 久久99九九99精品| 成人综合激情网| 91福利在线免费观看| 国产在线视频一区二区三区| 国产传媒日韩欧美成人| 99re这里都是精品| 欧美日韩免费高清一区色橹橹 | 色综合夜色一区| 久久精品免费观看| 成人免费av资源| 欧美网站大全在线观看| 欧美一级欧美三级在线观看| 精品国产乱码久久久久久浪潮| 国产精品毛片无遮挡高清| 亚洲第一狼人社区| 成人在线综合网站| 欧美专区日韩专区| 久久综合久久综合久久综合| 亚洲猫色日本管| 麻豆成人91精品二区三区| 99国产精品一区| 欧美高清性hdvideosex| 国产亚洲成aⅴ人片在线观看| 亚洲美女精品一区| 国产精品一区二区久久不卡 | 一本色道久久综合亚洲精品按摩| 国产一区亚洲一区| 欧日韩精品视频| 久久一区二区视频| 亚洲成人av一区二区三区| 国产精品1区2区| 宅男在线国产精品| 亚洲柠檬福利资源导航| 精品一区二区三区久久久| 欧美视频一区二区三区| 国产欧美精品国产国产专区| 天使萌一区二区三区免费观看| 国产成人亚洲综合色影视| 欧美老肥妇做.爰bbww视频| 国产精品理伦片| 国产在线精品一区二区三区不卡| 欧美日韩在线三区| 亚洲精品视频一区| 成人午夜伦理影院| 精品久久一区二区| 午夜精品aaa| 欧美日韩极品在线观看一区| 亚洲欧洲另类国产综合| 国产在线国偷精品产拍免费yy| 欧美一区二区三区日韩视频| 一区二区三区欧美激情| av福利精品导航| 久久精品人人爽人人爽| 久久精品国内一区二区三区| 欧美日免费三级在线| 亚洲丝袜另类动漫二区| 99精品欧美一区二区蜜桃免费 | 久久久不卡网国产精品二区| 蓝色福利精品导航| 日韩三级视频中文字幕| 奇米色一区二区| 亚洲成人资源网|