DWORD  WINAPI CKaiDlg::RecvProc(LPVOID lpParam)
{
CKaiDlg *pCKaiDlg=(CKaiDlg*)(lpParam); char recvBuf[200];

while(1)
{
memset(recvBuf, 0, sizeof(recvBuf));
recvfrom(pCKaiDlg->sockClient,recvBuf,100,0,(SOCKADDR*)&(pCKaiDlg->addrSrv),&(pCKaiDlg->len)); memcpy(&recvmsg,recvBuf, sizeof(recvBuf));
        
如何通过 CWindow::PostMessage或::PostMessage将recvBuf信息 发送给 创建此线程的窗口 CKaiDlg
       }

解决方案 »

  1.   

    既然有指针了,发什么消息啊,在对话框中加一个成员函数,直接调用成员函数啊,
    pCKaiDlg-> function(recvBuffer)
      

  2.   

    to  thirddata 
    原来是 是写了个函数function1(),放到while(1)里面
    用于数据处理,但是有的 udp数据包丢失,看到postmessage 直接将 信息发送后 不等待就返回,
    觉得这样用的话 可以不影响
    while(1)
    [
     
    }
    接收数据,就不会再丢 udp数据
      

  3.   

    函数function1()里面 原来 有
    两个功能,1 将得到的数据 在对话框 的 编辑框里显示 包括 CString 的处理
              2 查access数据库 并 找到对应 记录,将对应的记录选择出来  在对话框的 多个 编辑框和列表控件里显示。
    开始去掉了功能 2,接收数据 线程 还是 丢udp数据
                   考虑 去掉 1  2 都去掉,通过postmessage 将信息发送出去 应该 会使
    接收 数据 while(1)
    不倍再占用 更多 时间,应该就不会丢数据了吧?大家有什么好 其他的好办法吗?
      

  4.   

    写了  个 控制台 程序,可以及时地将 接收的 数据 用printf 打印 出来
    想来应该 是mfc程序  接收数据 的while(1) 不能及时 接收 数据吧
    如何 提高 while(1)接收 数据的 效率呢?
      

  5.   

    线程间的通信有很多种方法的,如内存,文本,消息机制等等,用google搜下,很多的