我之前在MFC應用程序中使用CSplitterWnd
,使用它的CreateView
函數。一切工作正常,但現在我想傳遞一個參數給我的視圖的構造函數,所以我不能使用MFC動態對象創建(DECLARE_DYNCREATE
和IMPLEMENT_DYNCREATE
),因爲它們需要一個空的構造函數。有沒有辦法在不使用(MFC)動態對象創建的情況下在CSplitterWnd中創建視圖?
在互聯網上搜索了一點後,我發現,看起來像這樣的爲例:
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是不可能的。
感謝
增加了一些信息,但你有一個好點我不認爲我會創造這些意見很多時間。謝謝。 – n1ckp 2009-09-30 20:56:50
因爲投票給你,雖然它不能完全解決我的需求,但在其他情況下,這可能是最好的答案。創建視圖的好處只有一次。我沒有經過這件事。 – n1ckp 2009-10-04 18:20:38
很高興爲您提供幫助,感謝您的支持。 – el2iot2 2009-10-05 14:26:58