您的位置:首页 > 其它

MFC MDI使用自定义模板对话框创建子文档

2014-03-26 14:33 323 查看
假设我的项目名是叫Me的多文档程序。

现在想要通过点击属于MainFrm的按钮,弹出不同的窗体。这些弹出的窗体由自定义的类和dialog控制。

1.定义两个类:Type1和Type2

以下操作Type1和Type2完全一样,所以有的地方就不重复说明了。

2.创建类

最方便的办法是找到项目目录,复制MeView.cpp和MeView.h,另存为副本。用记事本打开,在编辑中找到替换把CMeView全部替换为CType1或者CType2.

然后把文件重命名为Type1.cpp和Type1.h。之后添加到项目中就可以了。

3.创建对话框

然后在资源的dialog中插入对应的对话框。IDD_FORM1和IDD_FORM2。

4.更改Type1.h中对应对话框资源

在类中找到或加入

enum{IDD = IDD_FORM1}

5.在Me.cpp中添加模板

在全局变量部分添加

CMultiDocTemplate* pDocTemplate1;
CMultiDocTemplate* pDocTemplate2;


在InitInstance中添加

pDocTemplate1 = new CMultiDocTemplate(
IDR_MENUSUTYPE,
RUNTIME_CLASS(CMenuSubSetDoc),
RUNTIME_CLASS(CChildFrame), // custom MDI child frame
RUNTIME_CLASS(CType1));

pDocTemplate2 = new CMultiDocTemplate(
IDR_MENUSUTYPE,
RUNTIME_CLASS(CMenuSubSetDoc),
RUNTIME_CLASS(CChildFrame), // custom MDI child frame
RUNTIME_CLASS(CType2));


 

RUNTIME_CLASS确定了对应的操作类。

然后在需要调用的部分,比如mainfrm的某个按钮上函数中

extern CMultiDocTemplate* pDocTemplate1;

CMe *pDoc1;
pDoc1 = (CMe*)pDocTemplate1->OpenDocumentFile(NULL);


就可以了。

 

有问题可以联系我。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息