1
私は大きなデータ(x曲線は〜10'000ポイント)を内部に持つ(チャート)コントロールを持っています。私は異なるビューまたはウィンドウで同じデータでコントロールを表示する必要があります。別のビューまたはウィンドウで同じコントロールインスタンスを使用する
スピードと一貫性の問題(約150msの再描画)があるので、私は対照的なビューやウィンドウで同じ(読み取り専用の)コントロールインスタンスを使用しようとしました。
この方式では動作しているようです:
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);
}
しかし、これは許可されていますか?
はいDoc Viewアーキテクチャです。 ただし、DocのデータプールはControlデータプールと互換性がありません。 (std :: vectorとCArray) –
:)それを変更する...または、配列のDocにユニバーサルconstアクセサー関数を組み込む方がよい。データをコピーする必要はありません。 – xMRi
データのコピーが遅い場合。それをしないでください。これはXYの問題であるシーム...;) – xMRi