如何实现SDI与MDI的转换?

    技术2022-05-11  69

    如何实现SDI与MDI的转换?

    如何实现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.否则会出错。


    最新回复(0)