关于动态创建对话框以及动态创建控件

关于动态创建对话框的问题,网上也有不少相关的文章,但大多都是大同小异 

主要的关键是:

     请看下面的两种不同的动态创建对话框

1.  CDialog Dlg;

     Dlg.Create(IDD_DIALOG);

     Dig.ShowWindow(SW_SHOW);

2.  CDialog*  Dlg=new CDialog;

     Dlg->Create(IDD_DIALOG);

     Dlg->ShowWindow(SW_ShowWindow);

 

1动态创建的对话框是不能显示出来的,而2动态创建的对话框是能够显示出来的。

 

为什么会是这样的情况?答案其实很简单 

因为1中CDialog Dlg;是一个定义的一个局部对象,在它所处的函数模块范围内,随着函数的执行完毕,起局部对象也会随着消失。所以我们要在2中申请一块内存区,但要记得在对话框类的析构函数中释放该处的内存区,以免发生内存泄漏。

 

关于动态创建控件其实 道理是同样的 这里就不啰嗦了

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值