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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? drawobj.cpp

?? 連接oracle
?? CPP
?? 第 1 頁 / 共 3 頁
字號(hào):
		ar << m_sXCH;
		ar << m_cSubList;
		ar << m_PosIndex;
		ar << m_sJoinPNO;
		ar << m_sJoin2xch;
//		ar << m_sSubXch;
//		ar << m_fontsize;
//		ar << m_text;
//		ar << m_iArray;
//		ar << m_iHorVer;
		ar << m_bPen;
		//ar << m_logpen;
		//ar << m_logbrush;
		ar << g_fZoom;
		//******************************
//		ar << m_rectText;
		for (i = 0;i< m_nPoints; i++)
			ar << m_points[i];
		
	}
	else
	{
		WORD wTemp;
		ar >> wTemp; m_nShape = (Shape)wTemp;
		ar >> wTemp; m_nPoints = wTemp;
		ar >> wTemp; m_nAllocPoints = wTemp;
		//父對(duì)象的變量 ******************************
		ar >> m_position;
		ar >> m_bBrush;
		ar >> wTemp; m_DShape = (DrawShape)wTemp;
		ar >> m_sWellNO;
		ar >> m_sXCH;
		ar >> m_cSubList;
		ar >> m_PosIndex;
		ar >> m_sJoinPNO;
		ar >> m_sJoin2xch;
//		ar >> m_sSubXch;
//		ar >> m_fontsize;
//		ar >> m_text;
//		ar >> m_iArray;
//		ar >> m_iHorVer;
		ar >> m_bPen;
		//ar >> m_logpen;
		//ar >> m_logbrush;
		ar >> g_fZoom;
		//******************************
//		ar >> m_rectText;
		
		m_points = new CPoint[m_nAllocPoints];
		for (i = 0;i < m_nPoints; i++)
			ar >> m_points[i];
	}
/*	int i;
	CDrawObj::Serialize( ar );
	if( ar.IsStoring() )
	{
		ar << (WORD) m_nShape;
		ar << (WORD) m_nPoints;
		ar << (WORD) m_nAllocPoints;
		for (i = 0;i< m_nPoints; i++)
			ar << m_points[i];
	}
	else
	{
		WORD wTemp;
		ar >> wTemp; m_nShape = (Shape)wTemp;
		ar >> wTemp; m_nPoints = wTemp;
		ar >> wTemp; m_nAllocPoints = wTemp;
		m_points = new CPoint[m_nAllocPoints];
		for (i = 0;i < m_nPoints; i++)
			ar >> m_points[i];
	}*/
}

void CDrawPoly::Draw(CDC* pDC)
{
	ASSERT_VALID(this);

	CBrush brush;
	if (!brush.CreateBrushIndirect(&m_logbrush))
		return;
	CPen pen;
	if (!pen.CreatePenIndirect(&m_logpen))
		return;

	CBrush* pOldBrush;
	CPen* pOldPen;

	if (m_bBrush)
		pOldBrush = pDC->SelectObject(&brush);
	else
		pOldBrush = (CBrush*)pDC->SelectStockObject(NULL_BRUSH);

	if (m_bPen && polylink != m_nShape)
		pOldPen = pDC->SelectObject(&pen);
	else
		pOldPen = (CPen*)pDC->SelectStockObject(NULL_PEN);

	switch (m_nShape)
	{
	case polyFault:
	case poly:
		pDC->Polygon(m_points, m_nPoints);
		break;
	case polylink:
		{
			pDC->Polygon(m_points, m_nPoints);
			pDC->SelectObject(&pen);
			pDC->MoveTo(m_points[1]);
			pDC->LineTo(m_points[2]);
			pDC->MoveTo(m_points[3]);
			pDC->LineTo(m_points[0]);
		}
		break;
	case poly_line:
		pDC->Polyline(m_points, m_nPoints);
		break;
	}
	

	pDC->SelectObject(pOldBrush);
	pDC->SelectObject(pOldPen);
}

// position must be in logical coordinates
void CDrawPoly::MoveTo(const CRect& position, CDrawView* pView)
{
	ASSERT_VALID(this);
	if (position == m_position)
		return;

	if (pView == NULL)
		Invalidate();
	else
		pView->InvalObj(this);

	for (int i = 0; i < m_nPoints; i += 1)
	{
		m_points[i].x += position.left - m_position.left;
		m_points[i].y += position.top - m_position.top;
	}

	m_position = position;

	if (pView == NULL)
		Invalidate();
	else
		pView->InvalObj(this);
	m_pDocument->SetModifiedFlag();
}

int CDrawPoly::GetHandleCount()
{
	return m_nPoints;
}

CPoint CDrawPoly::GetHandle(int nHandle)
{
	ASSERT_VALID(this);

	ASSERT(nHandle >= 1 && nHandle <= m_nPoints);
	return m_points[nHandle - 1];
}

HCURSOR CDrawPoly::GetHandleCursor(int )
{
	return AfxGetApp()->LoadStandardCursor(IDC_ARROW);
}

// point is in logical coordinates
void CDrawPoly::MoveHandleTo(int nHandle, CPoint point, CDrawView* pView)
{
	ASSERT_VALID(this);
	ASSERT(nHandle >= 1 && nHandle <= m_nPoints);
	if (m_points[nHandle - 1] == point)
		return;

	m_points[nHandle - 1] = point;
	RecalcBounds(pView);

	if (pView == NULL)
		Invalidate();
	else
		pView->InvalObj(this);
	m_pDocument->SetModifiedFlag();
}

// rect must be in logical coordinates
BOOL CDrawPoly::Intersects(const CRect& rect)
{
	ASSERT_VALID(this);
	CRgn rgn;
	switch (m_nShape)
	{
	case polylink:
	case polyFault:
	case poly:		
		rgn.CreatePolygonRgn(m_points, m_nPoints, ALTERNATE);
		return rgn.RectInRegion(rect);
	case poly_line:
		CPoint po;
		po.x = rect.left;
		po.y = rect.top;
		return isVCrossAtLine(po,m_points,m_nPoints);
	}
	return FALSE;
}

CDrawObj* CDrawPoly::Clone(CDrawDoc* pDoc)
{
	ASSERT_VALID(this);

	CDrawPoly* pClone = new CDrawPoly(m_position);
	pClone->m_bPen = m_bPen;
	pClone->m_logpen = m_logpen;
	pClone->m_bBrush = m_bBrush;
	pClone->m_logbrush = m_logbrush;
	pClone->m_points = new CPoint[m_nAllocPoints];
	memcpy(pClone->m_points, m_points, sizeof(CPoint) * m_nPoints);
	pClone->m_nAllocPoints = m_nAllocPoints;
	pClone->m_nPoints = m_nPoints;
	ASSERT_VALID(pClone);

	if (pDoc != NULL)
		pDoc->Add(pClone);

	ASSERT_VALID(pClone);
	return pClone;
}

// point is in logical coordinates
void CDrawPoly::AddPoint(const CPoint& point, CDrawView* pView)
{
	ASSERT_VALID(this);
	if (m_nPoints == m_nAllocPoints)
	{
		CPoint* newPoints = new CPoint[m_nAllocPoints + 10];
		if (m_points != NULL)
		{
			memcpy(newPoints, m_points, sizeof(CPoint) * m_nAllocPoints);
			delete[] m_points;
		}
		m_points = newPoints;
		m_nAllocPoints += 10;
	}

	if (m_nPoints == 0 || m_points[m_nPoints - 1] != point)
	{
		m_points[m_nPoints++] = point;
		if (!RecalcBounds(pView))
		{
			if (pView == NULL)
				Invalidate();
			else
				pView->InvalObj(this);
		}
		m_pDocument->SetModifiedFlag();
	}
}

void CDrawPoly::RemoveAt(int nHandle)
{
	ASSERT(nHandle >= 1 && nHandle <= m_nPoints);
	for(int i=nHandle; i<m_nPoints-1; i++)
	{
		m_points[i] = m_points[i+1];
	}
	m_nPoints--;
}
void CDrawPoly::UpdateAt(const CPoint &point, int nHandle)
{
	ASSERT(nHandle >= 1 && nHandle <= m_nPoints);
	m_points[nHandle] = point;
}

BOOL CDrawPoly::RecalcBounds(CDrawView* pView)
{
	ASSERT_VALID(this);

	if (m_nPoints == 0)
		return FALSE;

	CRect bounds(m_points[0], CSize(0, 0));
	for (int i = 1; i < m_nPoints; ++i)
	{
		if (m_points[i].x < bounds.left)
			bounds.left = m_points[i].x;
		if (m_points[i].x > bounds.right)
			bounds.right = m_points[i].x;
		if (m_points[i].y < bounds.top)
			bounds.top = m_points[i].y;
		if (m_points[i].y > bounds.bottom)
			bounds.bottom = m_points[i].y;
	}

	if (bounds == m_position)
		return FALSE;

	if (pView == NULL)
		Invalidate();
	else
		pView->InvalObj(this);

	m_position = bounds;

	if (pView == NULL)
		Invalidate();
	else
		pView->InvalObj(this);

	return TRUE;
}

////////////////////////////////////////////////////////////////////////////

IMPLEMENT_SERIAL(CDrawOleObj, CDrawObj, 0)

BOOL CDrawOleObj::c_bShowItems = TRUE;

CDrawOleObj::CDrawOleObj() : m_extent(0,0)
{
	m_pClientItem = NULL;
}

CDrawOleObj::CDrawOleObj(const CRect& position)
	: CDrawObj(position), m_extent(0, 0)
{
	m_pClientItem = NULL;
}

CDrawOleObj::~CDrawOleObj()
{
	if (m_pClientItem != NULL)
	{
		m_pClientItem->Release();
		m_pClientItem = NULL;
	}
}

void CDrawOleObj::Remove()
{
	if (m_pClientItem != NULL)
	{
		m_pClientItem->Delete();
		m_pClientItem = NULL;
	}
	CDrawObj::Remove();
}

void CDrawOleObj::Serialize( CArchive& ar )
{
	ASSERT_VALID(this);

	CDrawObj::Serialize(ar);

	if (ar.IsStoring())
	{
		ar << m_extent;
		ar << m_pClientItem;
	}
	else
	{
		ar >> m_extent;
		ar >> m_pClientItem;
		m_pClientItem->m_pDrawObj = this;
	}
}

CDrawObj* CDrawOleObj::Clone(CDrawDoc* pDoc)
{
	ASSERT_VALID(this);

	AfxGetApp()->BeginWaitCursor();

	CDrawOleObj* pClone = NULL;
	CDrawItem* pItem = NULL;
	TRY
	{
		// perform a "deep copy" -- need to copy CDrawOleObj and the CDrawItem
		//  that it points to.
		CDrawOleObj* pClone = new CDrawOleObj(m_position);
		CDrawItem* pItem = new CDrawItem(m_pDocument, pClone);
		if (!pItem->CreateCloneFrom(m_pClientItem))
			AfxThrowMemoryException();

		pClone->m_pClientItem = pItem;
		pClone->m_bPen = m_bPen;
		pClone->m_logpen = m_logpen;
		pClone->m_bBrush = m_bBrush;
		pClone->m_logbrush = m_logbrush;
		ASSERT_VALID(pClone);

		if (pDoc != NULL)
			pDoc->Add(pClone);
	}
	CATCH_ALL(e)
	{
		pItem->Delete();
		pClone->m_pClientItem = NULL;
		pClone->Remove();
		AfxGetApp()->EndWaitCursor();

		THROW_LAST();
	}
	END_CATCH_ALL

	AfxGetApp()->EndWaitCursor();
	return pClone;
}

void CDrawOleObj::Draw(CDC* pDC)
{
	ASSERT_VALID(this);

	CDrawItem* pItem = m_pClientItem;
	if (pItem != NULL)
	{
		// draw the OLE item itself
		pItem->Draw(pDC, m_position);

		// don't draw tracker in print preview or on printer
		if (!pDC->IsPrinting())
		{
			// use a CRectTracker to draw the standard effects
			CRectTracker tracker;
			tracker.m_rect = m_position;
			pDC->LPtoDP(tracker.m_rect);

			if (c_bShowItems)
			{
				// put correct border depending on item type
				if (pItem->GetType() == OT_LINK)
					tracker.m_nStyle |= CRectTracker::dottedLine;
				else
					tracker.m_nStyle |= CRectTracker::solidLine;
			}

			// put hatching over the item if it is currently open
			if (pItem->GetItemState() == COleClientItem::openState ||
				pItem->GetItemState() == COleClientItem::activeUIState)
			{
				tracker.m_nStyle |= CRectTracker::hatchInside;
			}
			tracker.Draw(pDC);
		}
	}
}

void CDrawOleObj::OnOpen(CDrawView* pView)
{
	AfxGetApp()->BeginWaitCursor();
	m_pClientItem->DoVerb(
#ifndef _MAC		
		GetKeyState(VK_CONTROL) < 0 ? OLEIVERB_OPEN : OLEIVERB_PRIMARY,
#else		
		GetKeyState(VK_OPTION) < 0 ? OLEIVERB_OPEN : OLEIVERB_PRIMARY,
#endif		
		pView);
	AfxGetApp()->EndWaitCursor();
}

void CDrawOleObj::OnEditProperties()
{
	// using COlePropertiesDialog directly means no scaling
	COlePropertiesDialog dlg(m_pClientItem, 100, 100, NULL);

	dlg.DoModal();
}

// position is in logical
void CDrawOleObj::MoveTo(const CRect& position, CDrawView* pView)
{
	ASSERT_VALID(this);

	if (position == m_position)
		return;

	// call base class to update position
	CDrawObj::MoveTo(position, pView);

	// update position of in-place editing session on position change
	if (m_pClientItem->IsInPlaceActive())
		m_pClientItem->SetItemRects();
}




//DEL BOOL CDrawRect::SetShapeTest()
//DEL {
//DEL return TRUE;
//DEL }



//DEL int CDrawRect::m_TextSize()
//DEL {
//DEL 
//DEL }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
2欧美一区二区三区在线观看视频| 亚洲一区二区三区不卡国产欧美| 日韩美女视频在线| 欧美妇女性影城| 欧美日韩高清一区| 69精品人人人人| 日韩欧美一级二级| 欧美刺激午夜性久久久久久久| 欧美一区三区二区| 69av一区二区三区| 欧美成人一区二区三区| 精品久久久久久亚洲综合网| 久久久久久亚洲综合影院红桃| 久久亚洲捆绑美女| 国产欧美日韩亚州综合| 国产精品精品国产色婷婷| 亚洲三级电影全部在线观看高清| 亚洲精品一二三四区| 亚洲国产美女搞黄色| 亚洲国产成人va在线观看天堂| 亚洲国产精品影院| 日产国产欧美视频一区精品| 久88久久88久久久| 成人午夜大片免费观看| 91美女片黄在线观看91美女| 欧美日韩中文字幕一区| 在线成人免费视频| 久久在线免费观看| **性色生活片久久毛片| 亚洲一区二区三区在线播放| 日本不卡高清视频| 国产一区二区福利视频| 成人美女视频在线看| 色视频一区二区| 日韩欧美一区二区不卡| 国产精品久久久久久户外露出| 亚洲激情一二三区| 久久精品72免费观看| 波波电影院一区二区三区| 日本韩国欧美在线| 精品久久人人做人人爽| 中文字幕一区av| 成人久久视频在线观看| 欧洲精品一区二区| 欧美大片在线观看一区二区| 最近中文字幕一区二区三区| 日韩不卡免费视频| 波多野结衣中文字幕一区二区三区| 一本久久精品一区二区| 日韩欧美一级二级| 一区二区三区四区视频精品免费 | 欧美激情资源网| 亚洲免费视频成人| 蜜桃久久久久久| 99re在线视频这里只有精品| 日韩三级免费观看| 亚洲视频香蕉人妖| 久草中文综合在线| 日本乱人伦一区| 久久精品一区八戒影视| 视频一区国产视频| eeuss鲁片一区二区三区在线看 | 亚洲chinese男男1069| 国产综合久久久久影院| 欧美色图激情小说| 国产精品电影一区二区| 美洲天堂一区二卡三卡四卡视频| 91福利社在线观看| 国产精品美女久久久久高潮| 麻豆精品国产91久久久久久| 日本精品视频一区二区三区| 国产欧美一区二区精品忘忧草| 亚洲成人动漫在线免费观看| 国产成人综合在线观看| 欧美视频在线播放| 中文字幕av免费专区久久| 日韩理论片一区二区| 国产精品一品二品| 99国产精品视频免费观看| 欧美videossexotv100| 亚洲一区二区偷拍精品| 欧美性生活一区| 亚洲欧洲av在线| 欧美一卡二卡三卡| 91精品国产综合久久精品 | 国产精品女上位| 日韩不卡免费视频| 91视频在线观看| 久久久国际精品| 日本亚洲电影天堂| 色婷婷综合视频在线观看| 久久人人爽人人爽| 一区二区三区四区亚洲| 91小视频在线观看| 国产欧美一区二区精品秋霞影院| 日韩av午夜在线观看| 色中色一区二区| 国产精品污网站| 69堂成人精品免费视频| 日韩精品在线看片z| 免费在线观看成人| 欧美精品日日鲁夜夜添| 亚洲视频免费看| www.综合网.com| 欧美激情中文不卡| 国产精品羞羞答答xxdd| 久久综合久久综合亚洲| 乱一区二区av| 欧美另类高清zo欧美| 亚洲免费观看高清| 91美女精品福利| 亚洲日本青草视频在线怡红院 | 九色porny丨国产精品| 4438成人网| 午夜亚洲福利老司机| 欧美午夜片在线看| 亚洲综合999| 91天堂素人约啪| 亚洲午夜日本在线观看| 欧美专区在线观看一区| 亚洲精品高清视频在线观看| 91麻豆国产自产在线观看| 中文字幕一区二区三中文字幕| 久久99久国产精品黄毛片色诱| 久久午夜羞羞影院免费观看| 国产一区二区三区黄视频| 国产亚洲制服色| 粉嫩在线一区二区三区视频| 国产精品久久久久久久蜜臀| k8久久久一区二区三区| 亚洲伦在线观看| 欧美亚洲免费在线一区| 日韩国产欧美一区二区三区| 欧美一区二区三区喷汁尤物| 黄色成人免费在线| 精品国产乱码久久久久久牛牛 | 99re免费视频精品全部| 亚洲男人的天堂一区二区| 色综合色狠狠天天综合色| 日本成人中文字幕在线视频| 精品国产乱码久久久久久免费| 国产精品一区二区免费不卡| 中文字幕va一区二区三区| 99国产欧美另类久久久精品| 一级女性全黄久久生活片免费| 日韩久久久精品| 国产成人精品一区二| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 7777精品伊人久久久大香线蕉完整版 | 日韩欧美一区二区三区在线| 国产麻豆精品视频| 18成人在线视频| 欧美麻豆精品久久久久久| 激情欧美一区二区三区在线观看| 久久婷婷久久一区二区三区| 91在线观看成人| 美国十次综合导航| 国产精品久久综合| 91麻豆精品国产91久久久久久| 日韩精品91亚洲二区在线观看 | 欧美蜜桃一区二区三区| 国内精品第一页| 亚洲精品中文在线影院| 精品视频全国免费看| 高清不卡在线观看| 亚洲高清久久久| 国产亚洲精品精华液| 91久久线看在观草草青青 | 在线日韩国产精品| 日韩中文字幕91| 亚洲精品视频免费观看| 欧美一二三区精品| 91免费版pro下载短视频| 麻豆精品在线观看| 日韩一区欧美一区| 日韩免费福利电影在线观看| 欧美三级乱人伦电影| 成人av综合在线| 精品综合免费视频观看| 一区二区三区日韩精品视频| 久久综合资源网| 在线观看日韩毛片| 99久久国产综合精品女不卡| 免费高清在线视频一区·| 综合久久久久综合| 久久一二三国产| 6080yy午夜一二三区久久| 成人丝袜18视频在线观看| 国产一区二区看久久| 日本不卡中文字幕| 一区二区三区色| 国产精品美女视频| 精品电影一区二区| 色婷婷久久久久swag精品| 成人三级伦理片| 国产美女av一区二区三区| 免费成人在线网站| 首页国产欧美久久| 奇米777欧美一区二区| 亚洲一区二三区|