首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

MFC视图分割之间的通信,该如何处理

2012-04-22 
MFC视图分割之间的通信我用静态分割,分割成两个视图:CFormCommandView(基类是CFormView)、CRenderView(基类

MFC视图分割之间的通信
我用静态分割,分割成两个视图:CFormCommandView(基类是CFormView)、CRenderView(基类是CView),现在想用CFormView中的一些按钮、编辑框等控件来控制CRenderView中的物体,我用一个按钮来控制物体前进时用一下代码:
void CFormCommandView::OnFront() 
{
UpdateData ();
CMainFrame * pMainFrm = (CMainFrame *)AfxGetApp()->GetMainWnd();
CWnd * pWnd = pMainFrm->m_wndSplitter.GetPane(0, 0);
CRenderView* pView = DYNAMIC_DOWNCAST(CRenderView, pWnd);
pView->m_front=pView->m_front+0.1;
this->InvalidateRect(NULL,FALSE);
pView->InvalidateRect(NULL,TRUE);
}
但是点击按钮时会出错:“0x004034f2”指令应用的“0x00000044”内存。该内存不能为“read”.
求各位指教啊!!

[解决办法]
GetPane(0, 1);试了吗?
[解决办法]
pMainFrm pView 是否有效
[解决办法]
调试一下
看看各个指针都是否有效
[解决办法]

探讨
按一楼的我把GetPane(0, 0);换成GetPane(0, 1);试了一下,现在可以相应了,但是再点击按钮后动画就不动了 而且绘图区就变形了啊 是什么原因啊

[解决办法]
通过主框架窗口AfxGetMainWnd()来中转就好了
[解决办法]
是的啊,你要首先把Pane,视图、框架之间的树型关系搞清楚。
这个关系搞清楚之后,就很容易了。我觉得你应该先画个树型图出来。
其它的倒是次要的了。
[解决办法]
《MFC windows 程序设计》《VC技术内幕》

热点排行