请教MFC绘制直线橡皮筋效果

2025-03-26 02:57:47
推荐回答(1个)
回答1:

CClientDC dc(this); //创建客户区绘图的DC
dc.SelectObject(brush); //选择要使用的刷子
dc.SelectObject(pen); //选择要使用的画笔

dc.SetROP2(R2_XORPEN); //设置前景色的混色模式为XOR模式,也就是异或模式,在此模式下,前景色=(PEN的颜色 XOR 背景色)。两次XOR可还原背景色,这也是为什么要画两遍的原因!

//下面两句话是画一条从orign到end的线条。因为是采用XOR模式,所以它的作用是用于擦除上次画的线条,即还原背景色。
dc.MoveTo(m_ptOrigin);
dc.LineTo(m_ptEnd);

//设置新的终点
m_ptEnd=point;

//下面两句话是画一条从orign到end的线条。因为是采用XOR模式,所以它的前景色是PEN与背景色异或的结果。
dc.MoveTo(m_ptOrigin);
dc.LineTo(m_ptEnd);