如何在VC6.0中用GDI+画橡皮线?--跪求
我最近在做GIS底层开发,用VC6.0工具,导师要我用GDI+改写GDI,可在画橡皮线时出现了问题.我是刚接触GDI+,从网上了解到不能用SetROP2(),所以该怎摸办?而且我的GDI+库不支持DrawReversibleLine方法,所以急求各位高手帮助!!谢谢!
画橡皮线我响应了两个事件,一个在OnLButtonDown。另一个在OnMouseMove中
void CShpviewView::OnLButtonDown(UINT nFlags, CPoint point)
{
else if(m_DrawType == 2 || m_DrawType == 3) //绘制连续直线和面
{
if(m_PushNum == 0)
{
SetCapture(); //捕捉鼠标
m_PointOrign = point; //原点等于点中点
m_PointOld = point; //将前一个点设为点中点的坐标
}//如果是第一次按下左鼠标键
else
{
m_PointOrign = m_PointOld; //将上一个点设为原点
m_PointOld = point; //将点中点设为原点
}//二次以上按下鼠标左键时
m_PushNum++; //记录按下点的数目
}
void CShpviewView::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
if((m_DrawType == 2 || m_DrawType == 3 ) && m_PushNum >= 1) //绘制连续直线和面
{
CClientDC dc(this); //要改成GDI+
dc.SetROP2(R2_NOT);
dc.SelectStockObject(HOLLOW_BRUSH);
dc.MoveTo(m_PointOrign); //擦除原来的直线 画橡皮线
dc.LineTo(m_PointOld);
dc.MoveTo(m_PointOrign); //画现在的直线
dc.LineTo(point);
m_PointOld = point;
}
}