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

来源:互联网 发布:linux自带的jdk在哪里 编辑:程序博客网 时间:2024/06/05 15:53

假设我的项目名是叫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 frameRUNTIME_CLASS(CType1));pDocTemplate2 = new CMultiDocTemplate(IDR_MENUSUTYPE,RUNTIME_CLASS(CMenuSubSetDoc),RUNTIME_CLASS(CChildFrame), // custom MDI child frameRUNTIME_CLASS(CType2));


 

RUNTIME_CLASS确定了对应的操作类。

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

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


就可以了。

 

有问题可以联系我。

 

0 0
原创粉丝点击