可否如此?
CWnd MyWnd = new CWnd();
MyWnd.m_hWnd = HWND;.......
Delete MyWnd试试看,我也没把握.不过实在是没有必要如此,你有了HWND已经可以做你任何想做的事了,何必要搞到CWnd类去?

解决方案 »

  1.   

    CWnd * pWnd;
    pWnd->Attach(FindWindow("xxx"..));
    do you want to do
    pWnd->Detach();
      

  2.   

    如下:
    CWnd wndTarget;
    wndTarget.Attach(HWND);
    //操作,放心使用CWnd的成员吧
    wndTarget.Dttach(HWND);
    //记得不用了一定要释放就是这样
    其实对大多数的HWND和MFC类的转化都是这个方式
      

  3.   

    定义一个CWnd对象,使用FromHandle:CWnd::FromHandle  
    static CWnd* PASCAL FromHandle( HWND hWnd );
      

  4.   

    CWnd* pWnd;
    pWnd->Attach(hwnd);
    ...
    pWnd->Detach();
      

  5.   

    比如我要得到某个对话框的指针,然后操作该对话框如果是HWND的类型,怎么调用如AddString等函数呢,如果我直接用HWND类型的对象调用ADDSTRING()的话是错误的,只能用CWND类型的对象或指针。请教教我怎么用HWND类型的对象,谢谢!
      

  6.   

    如果xxx是个有效的HWND的话,
    CWnd*p=CWnd::FromHandle(xxx);
    然后就可以用p了啊
      

  7.   

    我刚才贴的跑道哪里去了?这样就可以了CWnd m_wnd;
    m_wnd.Attach(hWnd);...m_wnd.Detach();
      

  8.   

    怎么不能给分??CSDN出错了??
      

  9.   

    大家看看msdn,FromHandle得到的东东不能存起来以备后用噢!