MFC 基于CDockablePane上的CFramView视图的指针获取,为什么是空的

左右的右手 2015-01-30 05:23:13
类的关系如下

基于MDI的MFC工程,类CMainFrame中定义CMyPane myPane(基于CDockablePane类),CMyPane定义了CMyView(基于CFramView),在类CMyPane中创建对象CMyView:CMyView pView= (CMyView*)(RUNTIME_CLASS(CMyView)->CreateObject());
在多线程中,现在需要获取CMyView的句柄,通过SendMessage实时更新CMyView上的数据,
在线程中,我是这样获取的,(CMainFrame*)AfxGetMainWnd()->myPane.pView->m_hWnd,运行到这儿,老是报错,跟踪发现pView : CXX0030:错误:无法计算表达式的值,是不是pView没创建成功,还是这样调有问题,求大神们回复
...全文
205 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
洗洗睡去 2015-02-02
  • 打赏
  • 举报
回复
引用 4 楼 wangdongdong198910 的回复:
[quote=引用 2 楼 sunnyloves 的回复:] 可以直接在cdockablepane上进行和view一样的操作,不用在它上面再从view派生的
Cdockablepane是可以直接操作,但是,如果在上面布置自定义的效果,就比较麻烦了!而且控件如何初始化呢?[/quote] 怎么动态操作对话框就这么动态操作cdockablepane OnCreate里初始化 OnSize里调整位置 什么消息响应都和对话框一样
左右的右手 2015-02-02
  • 打赏
  • 举报
回复
没有人知道该怎么解决吗?
左右的右手 2015-02-02
  • 打赏
  • 举报
回复
引用 3 楼 gordon3000 的回复:
UI线程获取自己的窗口指针什么的是没问题,否则工作线程获取其它窗口记得是有问题(记不清了)。 既然你通过SendMessage发消息了,何不让CMainFrame或者其它窗口来处理线程数据,这样就不需要在线程函数中取窗口句柄了。
是用窗口去处理数据啊,关键是,如果获取对应的窗口,去处理相应的数据呢?这里就是无法获取到cdockablepane中的窗口句柄
左右的右手 2015-02-02
  • 打赏
  • 举报
回复
引用 2 楼 sunnyloves 的回复:
可以直接在cdockablepane上进行和view一样的操作,不用在它上面再从view派生的
Cdockablepane是可以直接操作,但是,如果在上面布置自定义的效果,就比较麻烦了!而且控件如何初始化呢?
副组长 2015-01-31
  • 打赏
  • 举报
回复
UI线程获取自己的窗口指针什么的是没问题,否则工作线程获取其它窗口记得是有问题(记不清了)。 既然你通过SendMessage发消息了,何不让CMainFrame或者其它窗口来处理线程数据,这样就不需要在线程函数中取窗口句柄了。
洗洗睡去 2015-01-30
  • 打赏
  • 举报
回复
可以直接在cdockablepane上进行和view一样的操作,不用在它上面再从view派生的
左右的右手 2015-01-30
  • 打赏
  • 举报
回复
pView应该是创建成功了,不然也不会显示出来

16,467

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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