void CFlatBrushPen::Draw(CDC* pDC,CRect& rcInvalid) { if(m_nPtCount <= 1) { return; } Graphics graph(pDC->m_hDC); graph.SetSmoothingMode(SmoothingModeHighQuality); Matrix mat; mat.RotateAt(m_fAngle,m_ptCenter); graph.SetTransform(&mat); Pen penDraw(m_crColor, (float)m_nWidth * m_fScale); penDraw.ScaleTransform(1, 2.0f / m_nWidth, MatrixOrderAppend); penDraw.RotateTransform(m_ftransAngle, MatrixOrderAppend); if(m_bSelected || m_bEdit) { graph.SetSmoothingMode(SmoothingModeAntiAlias); DrawHotShape(graph); } if(!m_bFinish) { Rect rc(rcInvalid.left, rcInvalid.top, rcInvalid.Width(), rcInvalid.Height()); graph.SetClip(rc); } graph.ExcludeClip(&m_RgnErase); PointF* pPt = m_ptary.GetData(); graph.DrawLines(&penDraw, pPt, m_nPtCount); }
void CDiamond::Draw(CDC* pDC,CRect& rcInvalid) { if(m_nPtCount <= 0) return; Pen penDraw(m_crColor,(float)m_nWidth); penDraw.SetLineJoin(LineJoinRound); penDraw.SetDashStyle(m_nDashStyle); Graphics graph(pDC->m_hDC); graph.SetSmoothingMode(SmoothingModeAntiAlias); Matrix mat; mat.RotateAt(m_fAngle,m_ptCenter); graph.SetTransform(&mat); if(m_nPtCount <= 1) { return; } else { if(m_bFinish && (m_bSelected || m_bEdit)) { DrawHotShape(graph); } graph.ExcludeClip(&m_RgnErase); PointF* pPt = m_ptary.GetData(); graph.DrawPolygon(&penDraw,pPt,4); } }
void CToolRegularRuler::Draw(CDC* pDC, CRect& rcInvalid) { if(m_nPtCount <= 1) { return; } Graphics graph(pDC->m_hDC); graph.SetSmoothingMode(SmoothingModeAntiAlias); Matrix mat; mat.RotateAt(m_fAngle,m_ptCenter); graph.SetTransform(&mat); Pen penDraw(m_crColor, 2); RectF rcf(m_ptary[0].X, m_ptary[0].Y, m_ptary[1].X - m_ptary[0].X, m_ptary[1].Y - m_ptary[0].Y); DrawRulerMarks(graph); graph.DrawRectangle(&penDraw, rcf); if(m_bSelected || m_bEdit) { DrawHotShape(graph); } }
void CNormalPen::Draw(CDC* pDC) { if(m_nPtCount == 0) return; Graphics graph(pDC->m_hDC); graph.SetSmoothingMode(SmoothingModeAntiAlias); Matrix mat; mat.RotateAt(m_fAngle,m_ptCenter); graph.SetTransform(&mat); Pen penDraw(m_crColor,(float)m_nWidth); penDraw.SetDashStyle(m_nDashStyle); penDraw.SetStartCap(m_nStartCap); PointF* pPt = m_ptary.GetData(); if(m_bFinish) { penDraw.SetEndCap(m_nEndCap); penDraw.SetLineJoin(LineJoinRound); graph.DrawCurve(&penDraw,pPt,m_nPtCount,0.8f); } else { graph.DrawCurve(&penDraw,pPt,m_nPtCount - 1,0.8f); } if(m_bSelected) { DrawHotShape(graph); } }
void CNormalPen::Draw(CDC* pDC,CRect& rcInvalid) { if(m_nPtCount == 0) { return; } Graphics graph(pDC->m_hDC); graph.SetSmoothingMode(SmoothingModeAntiAlias); Rect rc(rcInvalid.left, rcInvalid.top, rcInvalid.Width(), rcInvalid.Height()); Matrix mat; mat.RotateAt(m_fAngle,m_ptCenter); graph.SetTransform(&mat); if(m_bSelected || m_bEdit) { DrawHotShape(graph); } graph.ExcludeClip(&m_RgnErase); Pen penDraw(m_crColor,(float)m_nWidth); penDraw.SetDashStyle(m_nDashStyle); penDraw.SetStartCap(m_nStartCap); penDraw.SetLineJoin(LineJoinRound); int nCount = (int)m_ptary.GetCount(); PointF* pPt = m_ptary.GetData(); if(!m_bFinish) { graph.SetClip(rc); if(DashStyleSolid == m_nDashStyle) { penDraw.SetEndCap(m_nEndCap); } } else { penDraw.SetEndCap(m_nEndCap); penDraw.SetWidth(m_fScale * m_nWidth); } graph.DrawCurve(&penDraw, pPt, nCount); }
void CRectangle::Draw(CDC* pDC,CRect& rcInvalid) { if(m_nPtCount <= 0) { return; } Graphics graph(pDC->m_hDC); graph.SetSmoothingMode(SmoothingModeAntiAlias); Matrix mat; mat.RotateAt(m_fAngle,m_ptCenter); graph.SetTransform(&mat); CPoint ptLT; CPoint ptRB; ptLT.x = (int)m_ptary[0].X; ptLT.y = (int)m_ptary[0].Y; ptRB.x = (int)m_ptary[1].X; ptRB.y = (int)m_ptary[1].Y; CRect rc(ptLT,ptRB); rc.NormalizeRect(); if(m_bSelected || m_bEdit) { DrawHotShape(graph); } graph.ExcludeClip(&m_RgnErase); if(m_nPtCount == 1) { return; } if(RS_ROUND == m_nRStyle) { DrawRoundRect(graph,rc); } else if(RS_SQUARE == m_nRStyle) { DrawSquare(graph,rc); } else if(RS_RECT == m_nRStyle) { DrawRectangle(graph,rc); } }
void CNTriangle::Draw(CDC* pDC,CRect& rcInvalid) { if(m_nPtCount <= 0) { return; } Pen penDraw(m_crColor,(float)m_nWidth); penDraw.SetLineJoin(LineJoinRound); penDraw.SetDashStyle(m_nDashStyle); Graphics graph(pDC->m_hDC); graph.SetSmoothingMode(SmoothingModeAntiAlias); Matrix mat; mat.RotateAt(m_fAngle,m_ptCenter); graph.SetTransform(&mat); if(!m_bFinish) { PointF* pPt = m_ptary.GetData(); if(m_bhas3temppts) { Pen penPrev(Color::Blue, (float)m_nWidth); penPrev.SetDashStyle(DashStyleDash); graph.DrawLine(&penPrev, m_ptary[0], m_ptary[2]); } graph.DrawLines(&penDraw, pPt, m_nPtCount + 1); } else if(m_nPtCount == 3) { if(m_bSelected || m_bEdit) { DrawHotShape(graph); } graph.ExcludeClip(&m_RgnErase); PointF* pPt = m_ptary.GetData(); graph.DrawPolygon(&penDraw, pPt, m_nPtCount); } }
void CTriangle::Draw(CDC* pDC) { if(m_nPtCount <= 0) return; Graphics graph(pDC->m_hDC); graph.SetSmoothingMode(SmoothingModeAntiAlias); Matrix mat; mat.RotateAt(m_fAngle,m_ptCenter); graph.SetTransform(&mat); Pen penDraw(m_crColor,(float)m_nWidth); penDraw.SetLineJoin(LineJoinRound); if(m_nPtCount == 2) { Pen pent(Color::Blue,2); pent.SetDashStyle(DashStyleDot); CPoint ptLT; CPoint ptRB; ptLT.x = (int)m_ptary[0].X; ptLT.y = (int)m_ptary[0].Y; ptRB.x = (int)m_ptary[1].X; ptRB.y = (int)m_ptary[1].Y; CRect rc(ptLT,ptRB); rc.NormalizeRect(); graph.DrawRectangle(&pent,rc.left,rc.top,rc.Width(),rc.Height()); } else if(m_nPtCount == 3) { PointF* pPt = m_ptary.GetData(); graph.DrawPolygon(&penDraw,pPt,m_nPtCount); if(m_bSelected) { DrawHotShape(graph); } } }
void CAngleLabel::Draw(CDC* pDC, CRect& rcInvalid) { if(m_nPtCount <= 0) { return; } Pen penDraw(m_crColor, (float)m_nWidth); penDraw.SetLineJoin(LineJoinRound); penDraw.SetEndCap(LineCapRound); penDraw.SetStartCap(LineCapRound); penDraw.SetDashStyle(m_nDashStyle); Graphics graph(pDC->m_hDC); graph.SetSmoothingMode(SmoothingModeAntiAlias); Matrix mat; mat.RotateAt(m_fAngle, m_ptCenter); graph.SetTransform(&mat); PointF* pPt = m_ptary.GetData(); if(m_bhas3temppts || m_bFinish) { PointF ptd[3]; ptd[0] = pPt[1]; ptd[1] = pPt[0]; ptd[2] = pPt[2]; graph.ExcludeClip(&m_RgnErase); graph.DrawLines(&penDraw, ptd, 3); DrawAngleLabelMark(graph); } else { graph.DrawLine(&penDraw, pPt[0], pPt[1]); } if(m_bSelected || m_bEdit) { DrawHotShape(graph); } }