如题

解决方案 »

  1.   

    CEdit m_edit; //编辑框
    m_edit.GetWindowRect(...);//获取坐标
      

  2.   

    晕,打快了,应该是GetWindowRect
      

  3.   

    CRect rect;
    ((CEdit*)GetDlgItem(编辑框ID))->GetClientRect(&rect);
    ClientToScreen(&rect);
    CString str;
    str.Format("%d - %d - %d - %d",rect.left,rect.top,rect.right,rect.bottom);
    MessageBox(str);
      

  4.   

    那得看你需要获取什么样的坐标了:
    (1)获取编辑框的屏幕坐标:CRect edtRect;
    GetDlgItem(IDC_EDIT1)->GetWindowRect(&edtRect);
    (2)获取编辑框的相对于对话框客户区的坐标:
    需要在上面的基础上加上:ClientToScreen(&edtRect)
      

  5.   

    (2)获取编辑框的相对于对话框客户区的坐标:
    ----------------------
    不好意思,更正一下:this->ScreenToClient(&edtRect); //this即编辑框父窗口对话框的指针对象
      

  6.   

    GetWindowRect配合ScreenToClient使用或者GetClientRect
      

  7.   

    其实我在程序里就是这样用的,就是没用,我的代码如下:
    代码是在OnPaint函数中调用的,为了在编辑框中显示一副位图
    CWnd * pwnd=GetDlgItem(IDC_EDIT1);

    CDC *pdc=pwnd->GetDC();

    CBitmap bitmap;


    bitmap.LoadBitmap(IDB_BITMAP1); 
    BITMAP   bmp; 
    bitmap.GetBitmap(&bmp); 
    CDC   pCompatableDC; 
    pCompatableDC.CreateCompatibleDC(pdc); 
    pCompatableDC.SelectObject(&bitmap); 
    CRect rect;
    GetDlgItem(IDC_EDIT1)->GetWindowRect(rect);
    ScreenToClient(rect);
    pdc-> StretchBlt(0,0,rect.Width(),rect.Height(), 
    &pCompatableDC,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);
    结果,要把对话框移动到某些区域,位图才会出来,而且还不是在整个编辑框中显示出来。
    还有一个问题就是如果把CBitmap bitmap;定义为成员变量的话就有错,是不是资源释放问题引起的,高人解答啊
      

  8.   

    其中GetWindowRect配合ScreenToClient使用和GetClientRect的效果还不一样
      

  9.   

    哎,还是自己把问题解决了,原来还要加上UpdateWindow()