Create different SDI windows

本文介绍了如何使用MFC创建多个文档界面(MDI)应用程序的方法。通过初始化实例并定义不同的文档模板,可以创建不同类型的MDI窗口。此外,还提供了一个帮助函数OnFileNew,用于根据指定的索引打开新的文档实例。

Create different SDI windows
1. BOOL CtestMDIApp::InitInstance()

CMultiDocTemplate* pDocTemplate;
 pDocTemplate = new CMultiDocTemplate(IDR_testMDITYPE,
  RUNTIME_CLASS(CtestMDIDoc),
  RUNTIME_CLASS(CChildFrame), // custom MDI child frame
  RUNTIME_CLASS(CtestMDIView));
 AddDocTemplate(pDocTemplate);

 pDocTemplate = new CMultiDocTemplate(IDR_testMDITYPE, //IDR_View1TYPE,
  RUNTIME_CLASS(CtestMDIDoc),
  RUNTIME_CLASS(CChildFrame), // custom MDI child frame
  RUNTIME_CLASS(CView1));
 AddDocTemplate(pDocTemplate);

2. void CMainFrame::OnHelp1()

static
void OnFileNew(CDocManager* mgr, UINT nIdx)
{
 POSITION pos = mgr->GetFirstDocTemplatePosition();
 CDocTemplate* pTemplate = 0;
 for (UINT i=0; i<=nIdx && pos != NULL; i++)
 {
  pTemplate = mgr->GetNextDocTemplate(pos);
  ASSERT_KINDOF(CDocTemplate, pTemplate);
 }

 if(!pTemplate)
  return;

 ASSERT(pTemplate != NULL);
 ASSERT_KINDOF(CDocTemplate, pTemplate);

 pTemplate->OpenDocumentFile(NULL);
  // if returns NULL, the user has already been alerted
}

// CMainFrame message handlers


void CMainFrame::OnHelp1()
{
 OnFileNew(AfxGetApp()->m_pDocManager, 0);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值