You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.1 KiB
C++
51 lines
1.1 KiB
C++
#include "StdAfx.h"
|
|
#include "itemcircle.h"
|
|
#include "SigmaDoc.h"
|
|
|
|
namespace NItem
|
|
{
|
|
CItemEllipse::CItemEllipse(CSigmaDoc * ppDoc)
|
|
: CItemFocusRect(ppDoc)
|
|
, m_nWidthPosition(0)
|
|
{
|
|
m_dCurveWidth = 0.0;
|
|
this->SetType(ITEM_ELLIPSE);
|
|
}
|
|
|
|
CItemEllipse::~CItemEllipse(void)
|
|
{
|
|
}
|
|
|
|
void CItemEllipse::DoLButtonUp(CDC* pDC)
|
|
{
|
|
//CDC* pDCMem = GetDC()->GetDC();
|
|
GetDC()->Create(GetImgDC());
|
|
CRect8 rect = GetRect();
|
|
|
|
CEllipse* pc = new CEllipse();
|
|
CPoint2D pt = rect.CenterPoint();
|
|
pc->x0 = pt.x0;
|
|
pc->y0 = pt.y0;
|
|
pc->m_size.cx = fabs(rect.Width())*0.5;
|
|
pc->m_size.cy = fabs(rect.Height())*0.5;
|
|
|
|
if (GetDoc()->GetDraw() == NULL) { delete pc; return; }
|
|
POSITION pos = AddElement(pc, DOUBLEFOX_ELLIPSE);
|
|
|
|
COne* pOne = GetDoc()->GetDraw()->GetAt(pos);
|
|
pOne->Draw(*GetDC());
|
|
}
|
|
|
|
void CItemEllipse::DoDrawOther(CDC* pDC, int nButton)
|
|
{
|
|
GetDC()->Create(pDC);
|
|
CItemFocusRect::DoDrawOther(pDC, nButton);
|
|
|
|
CRect8 rect = GetRect();
|
|
int od = GetDC()->GetDC()->SetROP2(R2_NOTXORPEN);
|
|
CRect rt = GetDC()->GetScreen(rect);
|
|
rt.NormalizeRect();
|
|
GetDC()->GetDC()->Ellipse(&rt);
|
|
GetDC()->GetDC()->SetROP2(od);
|
|
}
|
|
} |