怎样把一个对话框的方法作为一个线程来启动啊?

woowindice 2008-11-05 02:05:24
线程方法里要访问对话框上的部分控件,所以无法做为静态方法。
大家有什么好的建议啊?
...全文
105 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ok208043624 2008-11-08
  • 打赏
  • 举报
回复
把你的方法做成静态的,然后将对话框的指针传进去,就ok了...

//创建线程的地方将this传进去..
CreateThread(...,ThreadProc,(PVOID)this,...);

//将ThreadProc定义成static
LRESULT CXXXDlg::ThreadProc(PVOID pParam)
{
CXXXDlg *pDlg = (CXXXDlg *)pParam;

//下面需要访问对话框资源的地方,用pDlg访问就行了...
}
zzz822163 2008-11-08
  • 打赏
  • 举报
回复
为什么无法做为静态方法?你把对话框的句柄传到线程中不就可以了吗
calizy 2008-11-05
  • 打赏
  • 举报
回复
LZ的意思是在线程上调用另一线程创建的控件吗?
最简单的就是page_load中设: CheckForIllegalCrossThreadCalls = false;

试一下.

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧