问题描述
- mfc窗口分割后的通信问题
-
VS2010环境下编写的,把视图分割成了上下两个窗口,都是CFormView类的,上面的窗口只有一个teechart控件,想要实现的功能是点击下面窗口的一个按钮在上面的teechart控件中显示一个50个随机数组成的曲线。按照网上的案例写完以后运行就马上报错,代码如下:
void CSpect_Tool::OnBnClickedButAddspect()
{
// TODO: 在此添加控件通知处理程序代码
CSpect_Display *MCFrm=(CSpect_Display *)this->GetParentFrame();CLegend legend = (CLegend)spectdpy.m_chart.get_Legend(); legend.put_Visible(FALSE); spectdpy.m_chart.AddSeries(0); ((CAspect)spectdpy.m_chart.get_Aspect()).put_View3D(false); ((CSeries)spectdpy.m_chart.Series(0)).put_VerticalAxis(0); ((CSeries)spectdpy.m_chart.Series(0)).put_HorizontalAxis(1); ((CSeries)spectdpy.m_chart.Series(0)).FillSampleValues(50);
}
这部分通信到底应该怎么去做呢,望知道的告知小弟一下,非常感谢
解决方案
就你的需求来说根本不应该用分割视图,而是应该创建一个类似资源管理器那样(只不过你是水平的)的界面,换言之,上下两部分不是一个视图的分割,而根本就是两个视图。
直接通过主帧窗口直接共享数据。
解决方案二:
直接一个CFormView,然后上面摆上下两层的控件
解决方案三:
不同的view的话,那么就通过mainframe来传递数据。多个view都可以跟mainframe通信
解决方案四:
可以通过主框架窗口来中转数据,AfxGetMainWnd()可以得到主框架窗口的CWnd*指针。
时间: 2024-11-08 22:33:27