實現SDI與MDI的轉換

發表于:2007-07-14來源:作者:點擊數: 標簽:
如果想將一個編好的SDI應用程序轉換為MDI,首先要建立一個繼承于CMDIChidWnd的類,假設為 CC hldFrm,在CWinApp中作如下變化。 InitInstance() { . ... //instead of adding CSingleDocTemplate // Add CMultiDocTemplate. pDocTemplate = new CMultiDocTemp
如果想將一個編好的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.否則會出錯。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97