返回信息流我的想法是把窗口的this指针作为参数传递给线程,如下
hThread=CreateThread(NULL,
0,
(LPTHREAD_START_ROUTINE)ThreadFunc,
this,
0,
&ThreadID);
然后在线程里就可以通过该指针使用窗口的控件了,
可是不成功。
怎么办?
我手头没有vc6的书可以参考。谢谢各位!![em9]
这是一条镜像帖。来源:北邮人论坛 / soft-design / #25882同步于 2008/5/30
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖
怎样在线程中使用创建该线程的窗口的控件?
zouguoluguo
2008/5/30镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
如果有窗口控件的句柄,可在新线程中直接使用,
没有,新线程中获取后再使用。
【 在 zouguoluguo (jiji) 的大作中提到: 】
: 我的想法是把窗口的this指针作为参数传递给线程,如下
: hThread=CreateThread(NULL,
: 0,
: ...................
呵呵。谢谢!
我最后还是使用
hThread=CreateThread(NULL,
0,
(LPTHREAD_START_ROUTINE)ThreadFunc,
this,
0,
&ThreadID);
之前老是出错的原因终于找到了,原来在线程里面不可以使用 窗口句柄->UpdateData(TRUE);这个函数。
至于为什么不可以使用我就不知道了。让人摸不着头脑的是 窗口句柄->其他成员变量;
可以使用,就是那个函数UpdateData函数不可以使用。
没办法只好在创建线程之前先UpdateData,线程结束后再UpdateData。
跟同学聊了以上的东西,同学说也许是C++不是纯面向对象的缘故。总之MFC有点让人摸不着头脑,知其然不知其所以然。
看看mfc源码就知道了。
【 在 zouguoluguo (jiji) 的大作中提到: 】
: 呵呵。谢谢!
: 我最后还是使用
: hThread=CreateThread(NULL,
: ...................