void GjyPolygon::Initial()
{
CUnit::Initial();
m_PointList = new CArray < CPoint, CPoint > ;
}
void GjyPolygon::DrawStatic(CDC *pDC)
{
CPen m_pen;
CBrush m_brush;
int oldDrawingMode = pDC->SetROP2(this->m_DrawingMode);
m_pen.CreatePen(m_PenStyle, m_PenWidth, m_PenColor);
CPen* pen = (CPen*)pDC->SelectObject(&m_pen);
LOGBRUSH brushlog;
brushlog.lbColor = m_BrushColor;
brushlog.lbHatch = m_BrushHatch;
brushlog.lbStyle = m_BrushStyle;
m_brush.CreateBrushIndirect(&brushlog);
CBrush*brush = (CBrush*)pDC->SelectObject(&m_brush);
int OldBkMode = pDC->SetBkMode(m_BkMode);
COLORREF OldColor = pDC->SetBkColor(m_BackgroundColor);
m_FirstPoint = m_PointList->GetAt(0);
pDC->MoveTo(m_FirstPoint);
for (int i = 0; i < m_PointList->GetSize(); i++)
{
pDC->LineTo(m_PointList->GetAt(i));
}
pDC->LineTo(m_PointList->GetAt(0));
pDC->SelectObject(brush);
pDC->SelectObject(pen);
pDC->SetBkMode(OldBkMode);
pDC->SetBkColor(OldColor);
pDC->SetROP2(oldDrawingMode);
}
void GjyPolygon::DrawMask(CDC *pDC, CPoint point)
{
CPen m_pen;
CBrush m_brush;
//int oldDrawingMode=pDC->SetROP2(this->m_DrawingMode);
m_pen.CreatePen(m_PenStyle, m_PenWidth, m_PenColor);
CPen* pen = (CPen*)pDC->SelectObject(&m_pen);
LOGBRUSH brushlog;
brushlog.lbColor = m_BrushColor;
brushlog.lbHatch = m_BrushHatch;
brushlog.lbStyle = m_BrushStyle;
m_brush.CreateBrushIndirect(&brushlog);
CBrush*brush = (CBrush*)pDC->SelectObject(&m_brush);
int OldBkMode = pDC->SetBkMode(m_BkMode);
COLORREF OldColor = pDC->SetBkColor(m_BackgroundColor);
pDC->MoveTo(m_PointList->GetAt(m_PointList->GetSize() - 1));
pDC->LineTo(point);
pDC->SelectObject(brush);
pDC->SelectObject(pen);
pDC->SetBkMode(OldBkMode);
pDC->SetBkColor(OldColor);
//pDC->SetROP2(oldDrawingMode);
}
GjyPolygon::GjyPolygon()
{
Initial();
}
void GjyPolygon::DrawEnd(CDC*pDC, CPoint point)
{
CPen m_pen;
CBrush m_brush;
int oldDrawingMode = pDC->SetROP2(this->m_DrawingMode);
m_pen.CreatePen(m_PenStyle, m_PenWidth, m_PenColor);
CPen* pen = (CPen*)pDC->SelectObject(&m_pen);
LOGBRUSH brushlog;
brushlog.lbColor = m_BrushColor;
brushlog.lbHatch = m_BrushHatch;
brushlog.lbStyle = m_BrushStyle;
m_brush.CreateBrushIndirect(&brushlog);
CBrush*brush = (CBrush*)pDC->SelectObject(&m_brush);
int OldBkMode = pDC->SetBkMode(m_BkMode);
COLORREF OldColor = pDC->SetBkColor(m_BackgroundColor);
pDC->MoveTo(point);
pDC->LineTo(m_PointList->GetAt(0));
pDC->SelectObject(brush);
pDC->S