首页 > 解决方案 > 画线和擦除线

问题描述

我有一个 mfc mdi 应用程序。

我有一条黑色线。

单击绘制按钮时,我必须在背面颜色线上绘制红色线。

单击删除按钮时,我必须擦除红色线,但黑色线应该可见。

我可以画红色线,但我不知道如何擦除红色线?

我正在使用下面的代码。在擦除线时,我得到了一种绿色线和黑色线也被擦除了。

void CScrRulerView::DrawLine(CDC* pDC, CRect rulerRect, bool bDraw)
{
    int nPrevMode;

    CPen pen(PS_SOLID,1,RGB(255,0,0));
    CPen* pPenOld = pDC->SelectObject (&pen);
    if(bDraw)
        nPrevMode = pDC->SetROP2(R2_COPYPEN);
    else
        nPrevMode = pDC->SetROP2(R2_NOT);
    pDC->MoveTo(rulerRect.left,rulerRect.top);
    pDC->LineTo(rulerRect.right,rulerRect.bottom);
    pDC->SelectObject(pPenOld);
    pDC->SetROP2(nPrevMode);


}

我正在使用 SetROP2(R2_NOT); 擦除我是否必须使用其他选项?

标签: mfc

解决方案


推荐阅读