大师,请问您,我在一个窗口下静态分割了3个窗口,分别是:1view.cpp、2view.cpp、3view.cpp请问您,如果想在3view.cpp中调用1view.cpp的变量a,这个怎么操作?
仅仅在3view.h的public中定义一个C1view * m_pView;,然后在3view.cpp里面m_pView->a就可以了么?
请明示,非常感谢!
之前有个朋友回答了,但是用的伪代码回答的,没解释清楚。还是得麻烦您看一下。谢谢!
直接定义视图指针,如果之前没有指针赋值,得不到实际窗口的数据。
如果是SDI单文档,根据窗口分隔位置,比较靠谱:
CMainFrame* pMF=(CMainFrame*)AfxGetApp()->m_pMainWnd;这样之后,就可以m_pView->a访问了。
追问这几句加在哪里?
另外有人说,
在Mainframe中切分3个View。
每个View在Mainframe中都定义一个指针变量,然后3个View就可以互相访问。
这个怎么弄?
加在访问a之前。
你的基础知识实在是需要加强啊,这样的基础问题,确实有多种代码可以实现,但你的“有人说”,就是我这个办法的“啰嗦版”,看不出来么?
您教导的对。
其他的没问题,就是加进去提示说,在MainFrm.h中的m_wndSplitter不可访问。
m_pView=(C1view*)GetParent();
这个可以?拆分的话,这个在一个View中可获取不到另一个View。
调试可以通过,但是一运行程序就出错了!应该是不能这么简单的干!
您还得帮忙看看。
就是这样设置的,出错时debug模式还是RELEASE?
做一次rebuilt all,看看你比这个变量是不是保护成员。
怎么rebuilt all?您教教我。
我的是vc2012版的。