不要把它的父窗口定义成你的CScrollView

解决方案 »

  1.   

    应该没有吧
    只不过好象MoveWindow(&rect)里的参数是相对当前可见视图的坐标
    而我想要的是让它相对整个滚动视图的坐标
    不知有没有什么好的方法可以实现
      

  2.   

    ScreenToClient(&rect);
    MoveWindow(&rect);
    试试看!!!
      

  3.   

    TO macrogu() 
    试过了,好象没有用
      

  4.   

    CDC dc;
    dc.LPtoDP(&rect)
    将坐标从整个视图的坐标位置转换成当前视图的坐标位置
    dc.DPtoLP(&rect)
    作用相反。
    给分。
      

  5.   

    对不起,各位热心的朋友,昨天下午有点事,没有看到后面两位的留言TO:: LoveAlien(绅士程序员) 
    我在保存m_CtrlRect时已经调用了dc.DPtoLP来转换坐标了,还是不行我这就把我的程序发上来给大伙看看
      

  6.   

    //MyCScrollView.cpp
    void CFlowView::OnLButtomUp(UINT nFlags, CPoint point) 
    {
      CClientDC dc(this);
      OnPrepareDC(&dc);
      dc.DPtoLP(&point);
    …………
      SetCursor(hHandClose);
      UpdateRect(point);            //其中改变Contrl的坐标
    …………
      Invalidate();
    }void CFlowView::OnDraw(CDC *pDC)
    {
    …………
      for (int i = 0;i<CtrlArry.GetUpperBound();i++)
      {
         Ctrl = (MyCtrl *)CtrlArry.GetAt(i);
         Ctrl->ReDraw(pDC);
      }
    …………
    }//MyCtrl.cpp
    void MyCtrl::ReDraw(CDC *pDC)
    {
       ……
       MyCtrl.MoveWindow(&CtrlRect);
       ……
    }
    说明:MyCtrl是个CStatic类型的控件;CtrlRect保存该控件的位置
    请问,MoveWindow(&CtrlRect)不是相对起父窗口CFlowView(CScrollView)的坐标吗?