单文档视图结构实现以下功能:通过工作线程加载数据,加载成功后,发送消息通知文档类更新数据。文档通过Event同步工作线程。#define WM_MY_MESSAGE                32772创建一个工作线程WorkerThread用于同步加载数据
启动线程后使用::PostThreadMessage(主线程ID,WM_MY_MESSAGE,0,0);
成功返回在文档类中消息映射:
afx_msg void Func(WPARAM wParam, LPARAM lParam);ON_MESSAGE(WM_MY_MESSAGE,Func)但是消息并没有被Func处理到。请问是不是消息映射的问题?错在哪里?
应该怎么做?

解决方案 »

  1.   

    workthread有消息循环么?PostThreadMessage的时候线程创建消息队列了么?
      

  2.   

    谢谢大家。
    我按照iyaosan的办法,又把消息映射加到了视图类还是不行。
    但是加到App类是可以的。昨天晚上看有个帖子里说好像是PostThreadMessage只能把消息传递到程序的App下想知道这是为什么?
    能不能传递到Doc或View呢?
      

  3.   

    PostThreadMessage是将消息发送到指定线程的消息循环中,MFC程序的消息循环在APP下。
      

  4.   

    那有没有办法把消息传到Doc去?或者View也可以。
    效率自然越高越好谢谢了
      

  5.   

    我是按照发送自定义消息做的啊
    能说的具体点么另外,如果在workerthread里向主线程发WM_PAINT,会得到OnDraw的响应么,怎么证实程序是因为收到消息才重绘的呢?谢谢各位先
      

  6.   

    我重新用PostMessage向View发送消息,可以得到响应,问题已经解决,谢谢大家的指点。