按照道理,产生了窗口才有句柄吧
通常是m_hWnd

解决方案 »

  1.   

    楼上说得对,mfc创建窗口的时候都会自动给CWnd成员变量m_hWnd 赋值的,
      

  2.   

     可是我的m_hWnd总是0x00000000
      

  3.   

    class myclass :public CWnd
    {
    }
    ASSERT(myclass.m_hWnd);
    看看m_hWnd的值是否有效,有效的话,就用它
      

  4.   

    因为你没创建窗口吧
    m_hWnd=create(....)
      

  5.   

    ASSERT(myclass.m_hWnd); 写在那里阿
      

  6.   

    句柄是与窗口相关连的,你在动态连接中调用肯定是一个无效的,因为窗口还没有创建吗!通常我们都是在创建好了的窗口中使用句柄,如在OnLButtonDown(UINT nFlags,CPoint point)中调用的,你使用的位置不对,在窗口创建完成之后就可以使用m_hWnd.因为跟窗口关联的句柄就存储在此类成员变量中.
      

  7.   

    问题是我只是自己写些串口通讯的函数,根本没有窗口阿,这样是不是我的辅助线程与主线程就不能用PostMessage通讯了
      

  8.   

    是,不能通过PostMessage通讯了
      

  9.   

    mfc里的窗口只要经过Create都会自动给m_hWnd赋值,Create完后,你只要直接调用m_hWnd成员变量就可以使用了
      

  10.   

    定义个结构传过去试试结构里 用CWnd 定义个指针  
    MYSTRUCT  * mystruct = new  MYSTRUCT;
    mystruct ->  CWnd = this;