标题:关于MFC工作线程问题
只看楼主
shyseaman
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-11-19
 问题点数:0 回复次数:1 
关于MFC工作线程问题
用VC的MFC进行多线程编程,建立了单文档的应用程序,在VIEW类下响应菜单按钮,创建工作者线程,然后在线程程序中执行后台程序,后台程序估计需要运行10分钟左右,然后我希望的结果是 后台程序运行结束后将结果通过OnDraw()函数显示到VIEW的文档里,不知道该怎么办?
void CEngineerView::OnMenuFour()
{
    pThread=AfxBeginThread(ThreadFunc,&Info);
    Invalidate();
}
UINT ThreadFunc(LPVOID lpParam)
{
    threadInfo* pInfo=(threadInfo*)lpParam;
        程序执行内容
    ::AfxEndThread(0);
    return 0;
}
在响应OnMenuFour()菜单后,执行工作者线程,然后直接调用Invalidate();函数进行VIEW窗口重绘显然不对,
现在不知道该怎么处理,希望是程序能在执行完工作者线程后引起窗口重绘,另外在执行工作者线程程序的时候不会引起主线程的等待导致程序跟死机一样!

现在最大的问题是句柄如何返回
在对话框中输入数据,点确定后线程计算,
::PostMessage((HWND)(AfxGetApp()->GetMainWnd()->GetSafeHwnd()),WM_DISPLAY,aTmpt,NULL);
用这样的函数调用 WM_DISPLAY 消息函数对VIEW进行重绘
现在的问题是这个句柄如何返回呢?
AfxGetApp()->GetMainWnd()->GetSafeHwnd()这个句柄好象不行
搜索更多相关主题的帖子: MFC 线程 
2007-12-01 13:45
hnzz_wgf
Rank: 1
等 级:新手上路
帖 子:81
专家分:0
注 册:2007-11-21
得分:0 
支持一下
2007-12-01 14:27



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-189722-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.250520 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved