BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / soft-design / #25882同步于 2008/5/30
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖

怎样在线程中使用创建该线程的窗口的控件?

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