在基于对话框的程序中,如何将捕获的鼠标坐标转换成对应控件的客户区坐标?
例如:我又一个Picture控件的ID为:IDC_PREVIEW
     在OnLButtonDown(UINT nFlags, CPoint point) 函数中,怎样将捕获的鼠标坐标转换成对应控件的客户区坐标???请赐教,在线等

解决方案 »

  1.   

    OnLButtonDown(UINT nFlags, CPoint point) 
    {
    ScreentoClient(point);
    CPicture *m_P=(CWND*)this->getItem(IDC_PREVIEW);
    CRect m_rect;m_p->GetWindowRect(&m_rect);
    point.x-=m_rect.x;
    point.y-=m_rect.y;
    }
      

  2.   

    CMydlg::OnLButtonDown(UINT nFlags, CPoint point) 
    {
    ScreentoClient(point);
    CPicture *m_P=(CWND*)this->getdlgItem(IDC_PREVIEW);
    CRect m_rect;m_p->GetWindowRect(&m_rect);
    point.x-=m_rect.x;
    point.y-=m_rect.y;
      

  3.   

    CRect没有x和y两个成员啊!请教,怎么办???
      

  4.   

    CRect(POINT point, SIZE size ),CRect( POINT topLeft, POINT bottomRight );
    这样就可以了吧。
      

  5.   

    CRect有left,right……
    坐标转换可以用ScreenToClient或者直接GetClientRect
      

  6.   

    CRect(POINT point, SIZE size ),CRect( POINT topLeft, POINT bottomRight );
      

  7.   

    ClientToScreen(&point);//先将客户坐标转换成屏幕坐标
    m_picture.ScreenToClient(&point);//再将屏幕坐标转换成对应控件的客户坐标