本人需要让光标沿着曲线行走并显示十字线.
光标倒是可以沿着曲线行走.但是显示十字线却异常!不能显示十字线.如果去掉  SetCursorPos(client.left+point.x,client.top+ptside.y);   这行代码则可以显示.只是曲线不能沿着曲线行走.沿着曲线行走:在视图中.根据point.x 找到曲线对应y .移动光标到达即可.在MOUSEMOVE中处理.曲线显示在视图中RectCoord 矩形框内部.
处理完毕后.在onpaint里取得当前光标点位置并画十字线.代码如下:void CCurveCtrl::OnMouseMove(UINT nFlags, CPoint point) 
{
................
if(m_bShowCross) 
        {
.......
                if (iPoint<=-1) iPoint=0;
            for (;(iPoint>-1)&& (iPoint < pCurve->m_ArrPoint.GetSize()-1);)
                {
                    float fVside = k * fHori + b;    
                    CPoint ptside;                         
                    CalculatePoint(fHori, fVside, ptside);
                    CRect   client;   
                    GetClientRect(&client);   
                    ClientToScreen(&client);   
                     ::ClipCursor(&client);//锁定鼠标移动范围在客户区   
                   
                    SetCursorPos(client.left+point.x,client.top+ptside.y);   
                   
                    point.y=ptside.y;
                    ::ClipCursor(NULL);//释放鼠标锁定   
                    break;
                    }
                   }
....... Invalidate();
..
}void CCurveCtrl::OnPaint()    CPoint point;
    GetCursorPos(&point);
    ScreenToClient(&point);   
       if(PtInRect(m_RectCoord, point)) 
        {
        // cross lines
       if (/*!m_bEdit &&*/ m_bShowCross)         
            {
            // color: using m_crAxis 
            CPen pentmp(PS_SOLID, 1, m_crAxis);
            CPen *pOldPentmp=pdc->SelectObject(&pentmp);            pdc->MoveTo(point.x, m_RectCoord.top);
            pdc->LineTo(point.x, m_RectCoord.bottom);
            pdc->MoveTo(m_RectCoord.left, point.y);
            pdc->LineTo(m_RectCoord.right, point.y);
            pdc->SelectObject(pOldPentmp);
            }