在不同的视图或窗口中使用相同的控件实例



我有一个(图表(控件,里面有大量数据(x 曲线 ~10'000 点(。我需要在不同的视图或窗口中显示具有相同数据的控件。

由于速度和一致性很重要(重绘大约 150 毫秒(,我尝试在不同的视图或窗口中使用相同的(只读(控件实例。

这个方案似乎有效:

void CMyview::OnInitialUpdate()
{
..
if (NULL == m_pCurveTempCtrl)
{
m_pCurveTempCtrl = new CCurveCtrl;
..  
}
void COtherView::OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView)
{
CWnd* m_pCurveCtrl = Pointer to CMyView::m_pCurveCtrl;
if (bActivate)
m_pCurveCtrl->SetParent(pActivateView);
else
m_pCurveCtrl->SetParent(pDeactiveView);
CFormViewEx::OnActivateView(bActivate, pActivateView, pDeactiveView);
}

但这被允许吗?

No.如果需要同时显示两个视图,会发生什么情况?只有一个会有一个窗户...

文档视图体系结构是理想的选择。

将数据保留在文档中,并使用使用文档中相同数据池的不同视图。

最新更新