查了MSDN没看懂这个用法
void GetDlgItem(
   int nID,
   HWND* phWnd
) const
想通过资源ID找指针  当我在类以外用GetDlgItem时 它提示说要用上面那种形式

解决方案 »

  1.   

    这是通过ID获取一个你指定的窗口内的控件,HWND应为当前窗口的句柄。
      

  2.   

    CWnd::GetDlgItem  是CWnd的成员函数,如果在CWnd派生的类中使用,可直接使用
    CWnd* pWnd = GetDlgItem(ID_XXX);否则,用SDK函数
    HWND GetDlgItem(
      HWND hDlg,       // handle to dialog box
      int nIDDlgItem   // control identifier
    );这样用:
    HWND hWnd;
    ::GetDlgItem(hWnd, ID_XXX);
    CWnd* pWnd = CWnd::FromHandle(hWnd);//或创建一个CWnd对象Attach上去
      

  3.   

    CEdit * output;//首先获得CEdit控件的指针,
    output =(CEdit *) GetDlgItem(IDC_EDIT1);
    //添加显示内容
    output->SetWindowText(m_sShowText);上面就是通过GetDlgItem获得指向Edit控件的指针
      

  4.   

    frank 我这样写 它报错说 hwnd不是窗口(大体这个意思,是个assert)
    (   ASSERT(::IsWindow(m_hWnd));   ) HWND hWnd;
    ::GetDlgItem(hWnd, IDD_DIALOG1);
     CWnd* pWnd = CWnd::FromHandle(hWnd);
     CListBox* p=(CListBox *)(pWnd->GetDlgItem(IDC_LIST1)); p->AddString("123456");
      

  5.   

    晕GetDlgItem是不能取顶层窗口句柄的。你添加一个Edit控件,用它的ID取它的句柄就没问题。
      

  6.   

    还是不懂  这几句话什么意思
    我想在类以外取的IDC_LIST1的指针    在IDD_DIALOG1上HWND hWnd;
    ::GetDlgItem(hWnd, ID_XXX);
    CWnd* pWnd = CWnd::FromHandle(hWnd);//或创建一个CWnd对象Attach上去不要了  救我
      

  7.   

    另外 在线程函数里面不能用AddString吗?类里面的线程函数都是静态的  它抱错说对非静态函数的非法使用
    所以我就专门用了类以外的线程函数  结果就出现了 需要在类以外 找这个资源ID的指针 的问题
      

  8.   

    代码在IDD_DIALOG1的关联类里时:
    HWND hWnd;
    hWnd = ::GetDlgItem(m_hWnd/*这是IDD_DIALOG1窗口的句柄*/, IDC_LIST1);
    CWnd* pWnd = CWnd::FromHandle(hWnd);//或创建一个CWnd对象Attach上去
      

  9.   

    HWND GetDlgItem(          HWND hDlg,
        int nIDDlgItem
    );
    见MSDN。
      

  10.   

    wangk(倒之) 说的对,我前面写错了,不好意思
      

  11.   

    莫非楼主说的是void CWnd::GetDlgItem( int nID, HWND* phWnd ) const; ?
    phWnd是指childwindow的
    这个函数好像是有子窗口的时候才用的
    获得控件的hwnd直接用CWnd* GetDlgItem( int nID ) const;
    CWnd *pwnd;
    pwnd=GetDlgItem(IDC_LIST1);
    pwnd->GetSafeHwnd();就是你要得到的句柄,或者按照wangk(倒之)的方法
      

  12.   

    获取本窗口的控件句柄用void GetDlgItem(   int nID ) const
      获取其他窗口的控件句柄用void GetDlgItem(   int nID,   HWND* phWnd) const
      

  13.   

    获取本窗体的控件直接调GetDlgItem(int nID),然后把返回值的类型转成要得到的控件类型就可以了
      

  14.   

    HWND hWnd = GetDlgItem(IDC_BUTTON)->m_hWnd // 这里就是对话框上ID为 IDC_BUTTON 按钮的句柄