VC++如何实现画图软件,设备类似CAD、PS等,工业控制等椭圆拖拉拽绘制功能

可以加关注:

void Ellipse::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);
    SetBrushOrg(pDC, &m_brush);
    CBrush*brush = (CBrush*)pDC->SelectObject(&m_brush);

    int OldBkMode = pDC->SetBkMode(m_BkMode);
    COLORREF OldColor = pDC->SetBkColor(m_BackgroundColor);
    pDC->Ellipse(CRect(m_FirstPoint, m_SecondPoint));
    pDC->SelectObject(brush);
    pDC->SelectObject(pen);
    pDC->SetBkMode(OldBkMode);
    pDC->SetBkColor(OldColor);
    pDC->SetROP2(oldDrawingMode);

}
void Ellipse::CRoundRectangle()
{
    Initial();
    //m_Shape=0;
    m_BrushStyle = BS_HOLLOW;
    m_BrushHatch = HS_CROSS;

}
void Ellipse::Serialize(CArchive &ar)
{
    CUnit::Serialize(ar);
    if (ar.IsStoring())
    {
        ar << m_BrushStyle << m_BkMode << m_BrushHatch << m_BrushColor;
    }
    else
    {
        ar >> m_BrushStyle >> m_BkMode >> m_BrushHatch >> m_BrushColor;
    }

}
BOOL Ellipse::IsInRgn(CPoint point)
{

    CPoint FirstPoint;
    CPoint SecondPoint;
    FirstPoint.x = m_FirstPoint.x < m_SecondPoint.x ? m_FirstPoint.x : m_SecondPoint.x;
    FirstPoint.y = m_FirstPoint.y < m_SecondPoint.y ? m_FirstPoint.y : m_SecondPoint.y;
    SecondPoint.x = m_FirstPoint.x > m_SecondPoint.x ? m_FirstPoint.x : m_SecondPoint.x;
    SecondPoint.y = m_FirstPoint.y >

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值