实现SDI与MDI的转换 (转)
如果想將一個編好的SDI應用程序轉換為MDI,首先要建立一個繼承于CMDIChidWnd的類,假設為CChldFrm,在CWinApp中作如下變化。
InitInstance()
{
. ...
????//instead of adding CSingleDocTemplate
????// Add CMultiDocTemplate.
????pDocTemplate = new CMultiDocTemplate(
???????????IDR_MAINFRAME,
???????????RUNTIME_CLASS(CSDIDoc),
???????????RUNTIME_CLASS(CChldFrm),
// For Main MDI Frame change this frame window from
// CFrameWnd derivative ( i.e. CMainFrame )
// to your CMDIChildWnd derived CChldFrm.
???????????RUNTIME_CLASS(CSDIView));
/// After this it is required to create the main frame window
// which will contain all the child windows. Now this window is
// what was initially frame window for SDI.
????CMainFrame* pMainFrame = new CMainFrame;
????if (!pMainFrame->LoadFrame(IDR_MAINFRAME))
????????????return FALSE;
?????m_pMainWnd = pMainFrame;
.....
}
在從CMDIFrameWnd中繼承的類CMainFrame代替CFramWnd后,所有的類都將從CMDIFrame繼承,而不是CFrameWnd,編譯運行后你就會發現程序已經從SDI變換到MDI。
注意:在CMainFram中必須將構造函數從private改為public.否則會出錯。
總結
以上是生活随笔為你收集整理的实现SDI与MDI的转换 (转)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【连载】vSphere 4.0 问答之引
- 下一篇: word2010怎么插入图表