CRect rt;
GetDlgItem(m_hwnd ,iCtrlID)->GetWindowRect( &rt ) ;
以上代码,报错:error C2039: 'GetWindowRect' : is not a member of 'HWND__'

解决方案 »

  1.   

    GetDlgItem(m_hwnd ,iCtrlID)-> // 这样的写法是调用了API 不是MFC的方法 返回值是HWND 所以出错
    MSDN 搜GetDlgItem 注意有两个结果 一个是api 另个带method的是mfc封装后的方法
    两者参数不同 返回值不同
    看你的使用环境 MFC程序里使用api时用::标记
      

  2.   

    GetDlgItem(iCtrlID)->GetWindowRect( &rt ) ; 
      

  3.   

    错误提示明白指出:GetWindowRect()的使用与GetDlgItem(m_hwnd ,iCtrlID)不匹配!3楼方法正解。
      

  4.   

    直接用
    GetDlgItem(iCtrlID)->GetWindowRect( &rt ) ; 
      

  5.   

    可以把这两步调用,分开来做。HWND hwnd = ::GetDlgItem(m_hwnd ,iCtrlID);
    if(hwnd != NULL)
      ::GetWindowRect(hwnd, &rt);可以试一下。
      

  6.   

    可以把这两步调用,分开来做。 HWND hwnd = ::GetDlgItem(m_hwnd ,iCtrlID); 
    if(hwnd != NULL) 
      ::GetWindowRect(hwnd, &rt); 
        同意7楼的意见。
      

  7.   

    不对
    改进如下
    HWND hwnd = ::GetDlgItem(m_hwnd ,iCtrlID); 
    if(ASSERT(::IsWindow(hwnd))) 
      ::GetWindowRect(hwnd, &rt); 
    请注意GetDlgItem与::GetDlgItem
    他们返回的数据类型不一样
      

  8.   

    GetWindowRect(GetDlgItem(m_hwnd, iCtrlID), &rt);
      

  9.   

    GetDlgItem(m_hwnd ,iCtrlID)这个是API的调用方法,返回值是窗体句柄,正确的方法应该是
    GetWindowRect(GetDlgItem(m_hwnd, iCtrlID), &rt);