EVC中无模式对话框的应用

无模式对话框在其父窗口中的打开方法,例子如下:

        CSystemSetDlg *pSystemDlg = new CSystemSetDlg(this);  //CSystemSetDlg为一个 无模式对话框类
        pSystemDlg->Create(IDD_SETALARM_DIALOG);
        pSystemDlg->ShowWindow(SW_SHOW);
     在上面的代码中,如果this是程序子窗口而非主窗口,那么程序子窗和无模式对话框将是被激活的显示在最前面。如果要求无模式对话框 总是显示在最前面,pSystemDlg->Create(IDD_SETALARM_DIALOG)必须改 为:pSystemDlg->Create(IDD_SETALARM_DIALOG,this),即指定程序子窗口为无模式对话框的父类。
    关闭无模式对话框出错的问题,由于无模式对话框是采用pDlg->ShowWindow(SW_SHOW)方式打开,所以在无模式窗口对话框时,父 窗口并不知道已关闭,也不会去释放其资源,所以释放资源必须由无模式窗口对话框自己完成。在VC++中,释放资源可以重载OnDestroy(),在 CDialog::OnDestroy()函数之后调用 delete this 方法;但在EVC中,这种操作会出错,必须重载PostNcDestroy(),在CDialog::PostNcDestroy()之后调 用 delete this 方法释放资源。在程序中还需要重载OnOk,OnCancel,OnColse函数,在这些函数最后调用DestroyWindow(),此函数会引起 PostNcDestroy函数的执行。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值