有两个对话框,UserDlg 和 RoomDlg ,我在 UserDlg 中启动一个线程,接受从服务器上发来的消息,然后,我想在线程里把得到的数据插入到 RoomDlg 上的一个 ListBox 中。RoomDlg 是在UserDlg 上点击一个按钮才显示的,请问要怎么做,才能将数据成功插入到 控件中?

解决方案 »

  1.   

    当消息来了之后给RoomDlg对话框发送消息..然后在RoomDlg对话框上进行处理就行了~~
      

  2.   

    创建线程的时候,把RoomDlg的窗口指针传过去给线程,如果这时候RoomDlg还没开始创建,可以先传一个指针过去,以后再设置.
      

  3.   

    关键问题是, RoomDlg还没创建,没办法传指针给线程的!
      

  4.   

    关键问题是,在创建线程的时候,RoomDlg还没实例化,没办法传指针过去的!
      

  5.   

    如果 是等RoomDlg创建之后在传过去,是用向线程发送消息来做吗?
    或者,我在线程循环里,用FindWindow来取得RoomDlg的句柄,可不可以呢?
    谢谢各位的回复!
      

  6.   

    class A
    {
    public :
        CWnd* GetRoom();private:
        CWnd* m_pRoom;
    }................
    BOOL A:: OnInitDialog()
    {  AfxBeginThread(xxx, this);
      .......
      m_pRoom = new Room();
    }xxx(void* pp)
    {
      A* a = (A*)pp;
      if(a)
      {
        CWnd* pWnd = a->GetRoom();
      }
    }