我将telent接收到的数据放在 telnet_buf[]中,起了个单独的线程;来跑telnet连接.但是不知道要如何将telnet_buf[]里面的数据显示到视图上,需要实时的显示,马上接收马上显示,用什么样的方法最合理,并且不会发生堵塞.谢谢!!

解决方案 »

  1.   

    在视图里增加一个方法.
    如  void setdata(char *buf, int size)
    {
    // copy  buf数据// 画图,更新
    }如果画图时间比较快的话,可以在线程里直接通过view指针来调用setdata即可.
      

  2.   

    向视图发送消息.可以保存一个全局的视图窗口句柄,视图创建的时候赋值到全局HWND , 视图DESTROY的时候 清除线程 可向这个全局的 HWND 发送消息. 视图收到消息 显示文本就行了:// Global 
    HWND  g_hWnd = NULL;
    CxxxView::OnCreate(...)
    {
      ...
      g_hWnd = m_hWnd;
      ...
    }CxxxView::OnDestroy()
    {
      g_hWnd = NULL;
      CView::OnDestroy();
    }BEGIN_MESSAG....  ON_MESSAGE(MSG_MYMESSAGE, OnMyMessage)
    END....LRESULT CxxxView::OnMyMessage(WPARAM, LPARAM lParam)
    {
        CString str = (LPCTSTR) lParam);
       .....
        AddText(str);
        Invalidate();
        return 1;
    }///////////////////////////////////
    // Thread cpp fileextern HWND g_hWnd;
    void  ThreadFnc(...)
    {    
        ...
        CString strMsg = ...;  /// 消息
        SendMessage(g_hWnd, MSG_MYMESSAGE, 0, (LPARAM)(LPCTSTR) strMsg);
       .........
    }