MFC 基于CDockablePane上的CFramView视图的指针获取,为什么是空的,该如何解决
MFC 基于CDockablePane上的CFramView视图的指针获取,为什么是空的
类的关系如下
基于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没创建成功,还是这样调有问题,求大神们回复
------解决思路----------------------
可以直接在cdockablepane上进行和view一样的操作,不用在它上面再从view派生的
------解决思路----------------------
UI线程获取自己的窗口指针什么的是没问题,否则工作线程获取其它窗口记得是有问题(记不清了)。
既然你通过SendMessage发消息了,何不让CMainFrame或者其它窗口来处理线程数据,这样就不需要在线程函数中取窗口句柄了。
类的关系如下
基于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没创建成功,还是这样调有问题,求大神们回复
------解决思路----------------------
可以直接在cdockablepane上进行和view一样的操作,不用在它上面再从view派生的
------解决思路----------------------
UI线程获取自己的窗口指针什么的是没问题,否则工作线程获取其它窗口记得是有问题(记不清了)。
既然你通过SendMessage发消息了,何不让CMainFrame或者其它窗口来处理线程数据,这样就不需要在线程函数中取窗口句柄了。