亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
久久国产综合精品| 三级欧美在线一区| 欧美成人bangbros| 在线播放91灌醉迷j高跟美女| 91影院在线免费观看| 成人毛片在线观看| 成人av电影在线| 91啪九色porn原创视频在线观看| 99久久久久免费精品国产| 一本大道久久a久久综合婷婷| 色老汉av一区二区三区| 欧美日韩国产高清一区二区| 欧美三级电影精品| 日韩三级高清在线| 久久蜜桃一区二区| 亚洲欧洲日韩一区二区三区| 亚洲免费在线播放| 石原莉奈在线亚洲二区| 美女在线视频一区| 风间由美性色一区二区三区| 97久久久精品综合88久久| 欧洲一区在线观看| 日韩欧美一级片| 国产精品毛片无遮挡高清| 一区二区三区欧美亚洲| 日本伊人色综合网| 国精产品一区一区三区mba桃花| 国产福利一区在线观看| 欧美综合在线视频| 欧美成人精品3d动漫h| 国产精品污www在线观看| 亚洲欧美日本韩国| 狠狠狠色丁香婷婷综合久久五月| 成年人网站91| 欧美成人高清电影在线| 国产精品美女久久久久久| 偷拍与自拍一区| 成人免费视频app| 欧美日韩一区在线观看| 久久久久久**毛片大全| 亚洲精品成a人| 国产一区二区不卡| 欧美日韩国产首页| 中文乱码免费一区二区| 蜜桃视频一区二区| 精品视频在线看| 欧美激情自拍偷拍| 久久精品国产成人一区二区三区| 99精品视频中文字幕| 91精品婷婷国产综合久久| 亚洲视频免费观看| 国产大片一区二区| 91精品国产综合久久精品麻豆| 综合网在线视频| 国产乱码精品一品二品| 欧美精品一二三| 一区二区三区在线免费视频| 成人国产在线观看| 久久亚洲精品小早川怜子| 亚洲成av人片一区二区梦乃| 成人午夜激情片| 久久久三级国产网站| 精品午夜久久福利影院| 欧美视频精品在线观看| 国产精品国产a| 国产91丝袜在线18| 国产亚洲欧美日韩日本| 韩国毛片一区二区三区| 欧美一区二区三区免费视频| 亚洲成人免费视频| 91久久国产最好的精华液| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 国产一区二区在线观看免费| 91精品国产高清一区二区三区蜜臀| 亚洲一区视频在线观看视频| 91一区一区三区| 一区二区三区四区在线播放| av在线播放不卡| 亚洲精选一二三| 91极品美女在线| 午夜视频在线观看一区| 欧美日韩在线综合| 日韩精品国产精品| 日韩一区二区三区四区| 久久国产婷婷国产香蕉| 亚洲精品一区二区在线观看| 国产乱色国产精品免费视频| 国产欧美一区二区精品秋霞影院| 国产精品夜夜嗨| 中文字幕欧美三区| 色拍拍在线精品视频8848| 亚洲图片欧美一区| 欧美xxxxx牲另类人与| 国产一区二区伦理| 中文字幕中文字幕在线一区| 色婷婷精品大视频在线蜜桃视频| 中文字幕在线一区| 欧美视频在线一区二区三区| 日本成人在线不卡视频| 欧美本精品男人aⅴ天堂| 激情综合色综合久久综合| 日本一二三不卡| 欧美日韩高清一区二区不卡| 久久99蜜桃精品| 国产精品不卡一区| 69成人精品免费视频| 国产一区二区三区四| 亚洲蜜臀av乱码久久精品| 日韩欧美第一区| 91网页版在线| 国产一区二区伦理片| 一二三区精品福利视频| 精品日韩在线一区| 色猫猫国产区一区二在线视频| 三级久久三级久久久| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 精品久久久久99| 不卡电影一区二区三区| 男女视频一区二区| 亚洲精品久久久蜜桃| 精品成人在线观看| 欧美私人免费视频| www.久久精品| 国产在线精品不卡| 日韩电影在线一区二区| 亚洲欧美另类久久久精品2019| 精品国精品国产尤物美女| 欧美视频一区在线| 成人动漫一区二区三区| 国内外成人在线| 午夜精品久久久久久久99水蜜桃| 成人免费视频在线观看| 2020国产精品自拍| 日韩一级片在线观看| 欧美性一二三区| 91丨porny丨最新| 国产精品一区二区x88av| 麻豆freexxxx性91精品| 日韩不卡一区二区三区| 亚洲五月六月丁香激情| 亚洲精品福利视频网站| 成人欧美一区二区三区黑人麻豆 | 91麻豆精品国产自产在线| 91免费国产在线| 成人h版在线观看| 成人福利视频网站| 国产成人精品www牛牛影视| 国模大尺度一区二区三区| 青娱乐精品视频| 日韩电影免费在线观看网站| 婷婷开心激情综合| 午夜日韩在线电影| 亚洲成人av在线电影| 亚洲综合自拍偷拍| 性做久久久久久久久| 午夜精品成人在线视频| 免费观看久久久4p| 久久99国产精品免费网站| 九九精品视频在线看| 蜜桃传媒麻豆第一区在线观看| 美国一区二区三区在线播放| 蜜桃视频一区二区三区在线观看 | 国产日韩av一区| 中日韩av电影| 亚洲黄色小说网站| 日韩毛片视频在线看| 国产精品女主播av| 日韩美女久久久| 亚洲午夜精品一区二区三区他趣| 午夜激情一区二区三区| 蜜桃视频一区二区三区| 激情都市一区二区| www.亚洲色图.com| 欧美午夜精品一区二区蜜桃| 91精品国产麻豆| 欧美激情综合五月色丁香| 亚洲色图欧洲色图| 日日噜噜夜夜狠狠视频欧美人| 蜜臀国产一区二区三区在线播放| 国内精品在线播放| 色婷婷综合视频在线观看| 欧美日韩另类一区| 国产日产精品一区| 亚洲永久免费视频| 国模一区二区三区白浆 | 欧美国产乱子伦| 亚洲一二三区视频在线观看| 久久爱另类一区二区小说| 国产高清不卡二三区| 欧美日韩免费观看一区三区| 精品不卡在线视频| 亚洲美女精品一区| 国产一区久久久| 91超碰这里只有精品国产| 国产三级久久久| 麻豆成人久久精品二区三区红| 99re这里都是精品| 精品美女一区二区| 香蕉久久夜色精品国产使用方法 | 欧美不卡在线视频|