我希望在工程函数abc()中调用ocx的方法def()来获取def()的返回值,但是def方法需要运行很长时间(3分钟以上),我的主工程函数abc()不可能一直处于等待状态,所以需要立即返回,这个时候当然获取不到返回值了。所以我希望在def()方法执行完成后将结果返回到主工程,这个时候主函数在进行数据处理,应该用什么技术好?有实例说明更好了,多谢。不好意思,全部分数都给了,呵呵!

解决方案 »

  1.   

    在.h文件中:
    #define WM_DEFOVER WM_USER+1
    ...
    afx_msg LRESULT OnDefOver(WPARAM wParam,LPARAM lParam) ;在.cpp中:ON_MESSAGE(WM_DEFOVER,OnDefOver)CxxxDlg::abc()
    {
        pThread = AfxBeginThread(ThreadProc, &Info) ;
    ...
    }
    UINT ThreadProc(LPVOID lpParam)
    {
       def() ;
       ::PostMessage(dlg->GetSafeHwnd(),WM_DEFOVER,0,(LPARAM)&dp) ;}
    LRESULT CxxxDlg::OnDefOver(WPARAM wParam, LPARAM lParam)
    {
    }
      

  2.   

    to syy64(太平洋) :能不能介绍点事件驱动资料,baidu搜索了一下,没发现合适的。
    to shanhe972005:你这种方式在C/S模式下是可以得,但是我这个ocx也需要使用在B/S上面,浏览器收不到系统消息的。