你的是个空Rect;
应加上pWnd->GetWindowRect();

解决方案 »

  1.   

    应加上pWnd->GetWindowRect((&rect);
      

  2.   

    CRect rc;
    CWnd* pWnd=GetDlgItem(IDC_BtonOK );//按钮控件
    pWnd->GetWindowRect(rc);
    this->ScreenToClient(&rect);///this而不是pWnd
      

  3.   


    CRect buttonrect;
    CWnd* pWndOk = (CWnd *)GetDlgItem(IDOK);
    pWndOk->GetClientRect(&buttonrect);
    就可以了.
      

  4.   

    对不起,我刚才漏了pWnd->GetWindowRect(&rect);
    但问题是我加了pWnd->GetWindowRect(&rect);,也没用
      

  5.   

    pWnd->ScreenToClient (&rect)这句话有加没加,你都试一下
      

  6.   

    GetWindowRect()   =>  ScreenToClient()
      

  7.   

    用再笨一点的办法肯定行
    CRect r;CPoint p;
    GetDlgItem(IDC_XX)->GetWindowRect(&r);
    p.x=r.left;
    p.y=r.top;//试一下用top还是bottom
    ScreenToClient(&p);
    r.SetRect(p.x,p.y,p.x+r.Width(),p.y-r.r.Height()/*不知用-还是+*/);
    r.NormalizeRect();
      

  8.   

    this->ScreenToClient(rect);///this而不是pWnd
    而且可以不加"&"符号。关键是ScreenToClient函数的调用窗口指针,不是控件的,而是他的父窗口。