在一个文本框中放了一个pic控件 然后timer一直让那个pic在文本框里移动 请问该如何获取pic的坐标呢?
不知道有哪个函数可以下断 请众大神能不能给点思路

解决方案 »

  1.   

    文本框里放控件?
    移动可以用MoveWindow
    坐标GetWindowRect和ScreenToClient配合使用
      

  2.   

    CWnd *pWnd = GetDlgItem(IDC_PIC);
    CRect rc;
    if ( pWnd )
    {
       GetWindowRect(pWnd ->m_hWnd,&rc);//
       ScreenToClient(this->m_hWnd,&rc)//
    }
      

  3.   

    首先:setTimer
    GetWindowRect
    ScreenToClient
    接着:MoveWindow
    KillTimer
    对移动的可放定时器里
      

  4.   

    大概就4楼的思路
    文本框的区域先获取rect
    然后MoveWindow pic控件在rect里移动
      

  5.   

    移动的实现很简单,你用内存DC画图后,Bltbit 前 改变 内存DC 和 视图DC的对应关系即可...
    比如默认 内存DC(0,0)对应视图DC(0,0),你改这种对应关系,就能实现移动.....而且速度很快
      

  6.   

    楼主是要求出PIC相对于文本框的坐标,还是相对于主窗口的坐标?
      

  7.   

    GetDlgItem(IDC_PICTURE)->MoveWindow()/SetWindowPos();
      

  8.   

    首先:setTimer
    GetWindowRect
    ScreenToClient
    接着:MoveWindow
    KillTimer
    对移动的可放定时器里
      

  9.   

    回12楼,如果是相对于文本框的坐标.
    假设文本框类指针为 m_CEdit,你那PIC是 m_Pic
    可以像楼上的那样.
    CRect rt;
    m_Pic.GetWindowRect(rt); //取相对于显示屏的坐标.
    m_CEdit.ScreenToClient(rt);  //把绝对坐标转成相对于m_CEdit的坐标