实现SDI与MDI的转换

王朝厨房·作者佚名  2007-01-04
窄屏简体版  字體: |||超大  

如果想将一个编好的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.否则会出错。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航