c++ 创建对话框

1 首先创建一个MFC单文档应用程序,名称为DialogTest.打开资源视图——Menu——IDR_MAINFRAME,在菜单栏中添加一个标签“对话框测试”,ID设置为IDM_DIALOGTEST,在属性中把popup属性设置为false.

2 添加两个子菜单,分别是“模式对话框”,ID为IDM_DIALOG1;“非模式对话框”,ID为IDM_DIALOG2.

3 在资源视图中的Dialog中添加一个对话框,ID为IDD_DIALOG1,并添加一个静态文本控件,Caption设置为“模式对话框”,

4 双击对话框空白处,在弹出的MFC类向导中命名类名为CTestDlg1,基类选择CDialog,之后完成。

5 同理添加另一个对话框,ID为IDD_DIALOG2。在MFC类向导中的类名设置为CTestDlg2,基类同样为CDialog.

6 打开IDR_MAINFRAME,右键选择“模式对话框”,在弹出的右键菜单中选择“添加事件处理程序”,在弹出的对话框中的“消息类型”选择COMMAND,类列表选择CDialogTestView,点击“添加编辑”,输入代码:

#include "TestDlg1.h"

CTestDlg1 dlg;
dlg.DoModal();

 

此时,模式对话框创建完毕。

7 相对于模式对话框来说,非模式对话框的创建相对复杂一点。同样是再次打开IDR_MAINFRAME,右键选择“非模式对话框”,在弹出的右键菜单中选择“添加事件处理程序”,在弹出的对话框中的“消息类型”选择COMMAND,类列表选择CDialogTestView,点击“添加编辑”,输入代码:

#include "TestDlg2.h"

CTestDlg2 *pDlg=new CTestDlg2;
pDlg->Create(IDD_DIALOG2,this);
pDlg->ShowWindow(SW_SHOW);

在这里,我将对话框对象定义为指针,在堆上分配内存,使其与程序的生命周期一致。之后用Creat()函数创建一个对话框,并用ShowWindow()将其显示出来。这里用到了指针指向操作符,只因为定义的对话框对象为指针类型,且调用了其成员函数(有C++基础的都会明白这一点吧......)。由于pDlg这个指针变量为局部对象,当其生命周期结束后,其保存的内存地址就会丢失。所以我们应该在CTestDlg2类中重载PostNcDestroy这个虚函数来释放this指针指向的内存。只需在这个函数中添加一句:

delete this;

CDialog::PostNcDestroy();

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值