线程中不能用获取的全局CView指针吗?

[复制链接]
查看11 | 回复5 | 2021-1-27 05:44:14 | 显示全部楼层 |阅读模式
SDI工程,用的是派生自CFormView的类做为视图,线程中使用指针更新视图上控件状态的时候总是报错,为什么?在线程中发送消息,视图类也收不到,该怎么做?
分 -->
回复

使用道具 举报

千问 | 2021-1-27 05:44:14 | 显示全部楼层
能获取的,但是使用不安全。最好的方法还是用SendMessage通知主界面。
发送消息收不到的话,确定是不是句柄有问题。
回复

使用道具 举报

千问 | 2021-1-27 05:44:14 | 显示全部楼层
创建线程的时候,就将View类的HWND窗口句柄作为线程函数的参数传递给线程,在线程中PostMessage/SendMessage发送自定义的消息到View类,在View类的自定义消息响应函数中区更新控件信息。
回复

使用道具 举报

千问 | 2021-1-27 05:44:14 | 显示全部楼层
能获取的
但是线程中不要处理UI操作
回复

使用道具 举报

千问 | 2021-1-27 05:44:14 | 显示全部楼层
引用楼主的回复:SDI工程,用的是派生自CFormView的类做为视图,线程中使用指针更新视图上控件状态的时候总是报错,为什么?在线程中发送消息,视图类也收不到,该怎么做?
使用不安全是由什么导致的?线程中用指针获取数据调用函数都没问题,为什么在函数里改变控件状态就会报错呢?
回复

使用道具 举报

千问 | 2021-1-27 05:44:14 | 显示全部楼层
引用4楼的回复:引用楼主的回复:
SDI工程,用的是派生自CFormView的类做为视图,线程中使用指针更新视图上控件状态的时候总是报错,为什么?在线程中发送消息,视图类也收不到,该怎么做?
使用不安全是由什么导致的?线程中用指针获取数据调用函数都没问题,为什么在函数里改变控件状态就会报错呢?

参考win32多线程程序设计,没记错的话是第10章。用这个指针操作,凡是与句柄相关的,都会出错,而很多成员函数都是通过发消息来实现的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行