象大智慧之类的股票软件里,股票曲线图中可移动竖线是如何做的?

解决方案 »

  1.   

    有一个办法:
    void CMySingleViewView::OnMouseMove(UINT nFlags, CPoint point)
    {
    // TODO: 在此添加消息处理程序代码和/或调用默认值
    //m_OldPoint = point;
    static int count = 0;
    count ++;
    CRect rect;
    GetClientRect(&rect);
    //ScreenToClient(&rect);
    CDC * pDC = GetDC();
    pDC->MoveTo(0,point.y);
    pDC->LineTo(rect.right,point.y); pDC->MoveTo(point.x, 0);
    pDC->LineTo(point.x, rect.bottom);
    if (count % 3 == 0)
    {

    this->Invalidate();
    }
    CView::OnMouseMove(nFlags, point);
    }
      

  2.   

    用很多开发软件自带一些此类的控件的,很好用~
    比如CVI,带一些常用的仪表、曲线图之类的控件
      

  3.   

    CClientDC dc(this);
    dc.SetROP2( R2_NOT );
    dc.MoveTo(0,m_OldPoint.y);
    dc.LineTo(2000,m_OldPoint.y);
    dc.MoveTo(m_OldPoint.x,0);
    dc.LineTo(m_OldPoint.x,900);
    dc.MoveTo(0,point.y);
    dc.LineTo(2000,point.y);
    dc.MoveTo(point.x,0);
    dc.LineTo(point.x,900);
    m_OldPoint = point;