通过按钮控件实现MDI新建子窗口

本文档介绍如何通过按钮控件实现MDI应用程序中新建自定义子窗口的操作。首先,需理解文档/视图框架,接着创建CDocument、CView(或CFormView)、CMDIChildWndEx类。接着,声明自定义子框架类的DECLARE_DYNCREATE宏,并在App源文件中关联文档、视图和子框架。最后,添加按钮响应函数,动态创建并设置子窗口的标题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先理解文档、视图、模板之间的关系,理解文档/视图框架。


1.添加CDocument类、CView(或者CFromView)类、CMDIChildWndEx类。

2.修改自定义的子框架类中的宏,头文件和源文件都为  DECLARE_DYNCREATE 。

3.添加全局变量CMultiDocTemplate 模板类指针,在App源文件中添加 文档、视图、子框架关联。

例如:

pUserFormDocTemplate = new CMultiDocTemplate(
IDR_USERVIEW_TMPL,
RUNTIME_CLASS(CUserDoc),
RUNTIME_CLASS(CUserFrm),
RUNTIME_CLASS(CUserView));
AddDocTemplate(pUserFormDocTemplate);



 4.添加按钮响应,在响应函数中添加如下代码:

if (theApp.flog[0])

{//创建用户管理子窗口

if (theApp.pUserFormDocTemplate)

{

theApp.pUserFormDocTemplate->OpenDocumentFile(NULL);

theApp.flog[0] = 0;                                   //创建成功标记

POSITION pos = theApp.pUserFormDocTemplate->GetFirstDocPosition();

CDocument *pDoc =  theApp.pUserFormDocTemplate->GetNextDoc(pos);

pDoc->SetTitle("用户管理");

}

}

5.在子框架类中添加Onclose函数,当窗口关闭时,恢复创建标记flog,这样就可以确保始终只有一个同样的子窗口创建。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值