CDC * pdc=m_cwParent->GetDC();if(pdc==NULL)
return;CDC memDC;
CBitmap bmp; memDC.CreateCompatibleDC(pdc);
bmp.CreateCompatibleBitmap(pdc,m_rcShape.Width(),m_rcShape.Height());
CPen penBaf(PS_SOLID,PENWIDTH,CIRCLECOLOR); memDC.SelectObject(&bmp);// memDC.FillSolidRect( 0, 0, m_rcShape.Width(),m_rcShape.Height(), RGB(255,255,255) ); ???问题(1)int oldmode=memDC.SetROP2(R2_NOTXORPEN); //采用异或画图 擦除刀具(圆球)CPen *oldpen=memDC.SelectObject(&penBaf); memDC.Ellipse(ptd.x-6,ptd.y+3,ptd.x+6,ptd.y+15); //当前刀具(圆球)
memDC.Ellipse(prepoint.x-6,prepoint.y+3,prepoint.x+6,prepoint.y+15); //擦去前一个刀具 memDC.SetROP2(R2_COPYPEN ); //设置正常模式 画加工轨迹点 memDC.Ellipse(ptd.x-PENWIDTH,ptd.y-PENWIDTH,ptd.x+PENWIDTH,ptd.y+PENWIDTH); //轨迹点 memDC.SetROP2(oldmode); memDC.SelectObject(oldpen)->DeleteObject(); pdc->BitBlt(m_rcAll.Width()-m_rcShape.Width(),0,m_rcShape.Width(),m_rcShape.Height(),&memDC,0,0,SRCCOPY); memDC.DeleteDC();
bmp.DeleteObject(); m_cwParent->ReleaseDC(pdc);以上是我的绘图代码我想实现的是刀具加工的时候跟踪加工轨迹,用一个圆代表刀具,采用SetROP2(R2_NOTXORPEN)的模式画两次擦除前次画的刀具【现在的问题是】
屏蔽标记的(1)处代码,轨迹和刀具的显示都是正常的,但屏幕是黑色的
加上(1),背景变成了白色,但是只现实当次画的点和圆,以前画的都没有了怎么处理啊?
麻烦高手看看我代码哪里有点问题
return;CDC memDC;
CBitmap bmp; memDC.CreateCompatibleDC(pdc);
bmp.CreateCompatibleBitmap(pdc,m_rcShape.Width(),m_rcShape.Height());
CPen penBaf(PS_SOLID,PENWIDTH,CIRCLECOLOR); memDC.SelectObject(&bmp);// memDC.FillSolidRect( 0, 0, m_rcShape.Width(),m_rcShape.Height(), RGB(255,255,255) ); ???问题(1)int oldmode=memDC.SetROP2(R2_NOTXORPEN); //采用异或画图 擦除刀具(圆球)CPen *oldpen=memDC.SelectObject(&penBaf); memDC.Ellipse(ptd.x-6,ptd.y+3,ptd.x+6,ptd.y+15); //当前刀具(圆球)
memDC.Ellipse(prepoint.x-6,prepoint.y+3,prepoint.x+6,prepoint.y+15); //擦去前一个刀具 memDC.SetROP2(R2_COPYPEN ); //设置正常模式 画加工轨迹点 memDC.Ellipse(ptd.x-PENWIDTH,ptd.y-PENWIDTH,ptd.x+PENWIDTH,ptd.y+PENWIDTH); //轨迹点 memDC.SetROP2(oldmode); memDC.SelectObject(oldpen)->DeleteObject(); pdc->BitBlt(m_rcAll.Width()-m_rcShape.Width(),0,m_rcShape.Width(),m_rcShape.Height(),&memDC,0,0,SRCCOPY); memDC.DeleteDC();
bmp.DeleteObject(); m_cwParent->ReleaseDC(pdc);以上是我的绘图代码我想实现的是刀具加工的时候跟踪加工轨迹,用一个圆代表刀具,采用SetROP2(R2_NOTXORPEN)的模式画两次擦除前次画的刀具【现在的问题是】
屏蔽标记的(1)处代码,轨迹和刀具的显示都是正常的,但屏幕是黑色的
加上(1),背景变成了白色,但是只现实当次画的点和圆,以前画的都没有了怎么处理啊?
麻烦高手看看我代码哪里有点问题
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货