mfc - 画线和擦除线
问题描述
我有一个 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); 擦除我是否必须使用其他选项?
解决方案
推荐阅读
- c++ - 错误:编译时没有匹配的调用函数
- python - 不知道如何从python中的列表中分离积分
- python - 如何阅读 zip 文件中的 50 多个文本文件?
- python - 如何在游戏中创建两种类型的碰撞
- database - ER 图中的属性帮助
- node.js - Azure 节点 IOT SDK 如何为 MQTT 异常设置回调
- node.js - 如何为在 localhost:3000 上运行的 Create-React-App 设置代理通过 NGINX
- python - 如何创建基于另一个数据框的值命名的多个数据框?
- excel-formula - 使用 Excel,我是否可以使用某种类型的公式来评估订单行列表并在订单级别确定它们的属性是什么?
- flutter - 如何在 Flutter 中为文本的 fontSize 设置动画?