我正在看一个分析某种物质所含元素的比例这么一个软件,它可以根据测量的数值绘制曲线,但为什么当进行第二个物质测量绘制曲线时,前一个曲线总会残留一段,这是什么原因啊,我学VC不久,还请高手帮忙,谢谢!

解决方案 »

  1.   

    设置SetRop2(R2_XORPEN)后再重新绘制一次原来的曲线,那么那条曲线就去掉了
      

  2.   

    代码如下:pWnd->GetWindowRect(&m_rect);
    LRESULT CDlgEpcRun::OnGetPoint(WPARAM wParam, LPARAM lParam)
    {
    CRect rect;//(50,295,65,300)
    if(lParam==0){
    m_nmax_x=wParam;
    m_npoints[wParam]=300-(int)(m_fC*2.5+.5);
    m_point0=(wParam+45,m_npoints[wParam]-5);
    m_point1=(wParam+65,m_npoints[wParam]+5);
    rect.left=45+wParam;
    rect.top=294-(int)(m_fC*2.5+.5);
    rect.right=55+wParam;
    rect.bottom=310-(int)(m_fC*2.5+.5);
    InvalidateRect(rect,TRUE);
    }
    else if(lParam==100){
    InvalidateRect(m_rect,TRUE);
    }
    return 0;
    }
    void CDlgEpcRun::OnPaint() 
    {
    CPaintDC dc(this); 

    dc.SetMapMode(MM_TEXT);
    InitDraw(dc);
    for(int i=0;i<m_nmax_x;i++){
    dc.SetPixel(CPoint(50+i,m_npoints[i]),RGB(255,0,0));
    }

    }
    其中的InvalidateRect(m_rect,TRUE)是不是就已经对前一次的曲线进行擦除了,为什么画下一个曲线时,前面的曲线总会残留其中的一小段呢,请教高手,谢谢!