私は以前CSplitterWnd
、MFC アプリケーションでその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の回答の後に詳細を追加:
初期化メソッドが機能するというあなたの権利ですが、これにより、その初期化メソッドを呼び出すことを覚えておく必要がありますが、指摘したように、これらのビューを何度も作成することはおそらくないので、問題ありません。私が望むもう1つのことは、ビューの有効期間を自分で管理することです。これも、CreateViewを使用して行うことはできません。
ありがとう