我以前CSplitterWnd
在 MFC 应用程序中使用 a ,使用它的CreateView
功能。一切正常,但现在我想将参数传递给我的视图的构造函数,所以我不能使用 MFC 动态对象创建(DECLARE_DYNCREATE
和IMPLEMENT_DYNCREATE
),因为它们需要一个空的构造函数。
在互联网上搜索了一下后,我发现了一个看起来像这样的示例:
m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CMyView), CSize(0,0), pContext);
m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CMyView), CSize(0,0), pContext);
m_pView0=(CMyView *)m_wndSplitter.GetPane(0,0);
m_pView1=(CMyView *)m_wndSplitter.GetPane(0,1);
这可能是一种解决方法(即:创建一个新函数CMyView
让我指定我想要的内容),但这会很丑陋且容易出错。任何人都知道是否有另一种方法可以做到这一点?
编辑:在ee的回答之后添加更多细节:
您认为初始化方法可以工作的权利,但这迫使我记住调用该初始化方法,但就像您指出的那样,我可能不会多次创建这些视图,所以应该没问题。我可能想要的另一件事是自己管理视图的生命周期,所以再次使用 CreateView 是不可能的。
谢谢