mfc关闭模态dialog的正确方式

在MFC中,模态对话框通常通过EndDialog关闭,而非直接DestroyWindow。EndDialog设置标志并在系统检索下一个消息前关闭对话框,返回指定值给父窗口。DestroyWindow用于非模态对话框,会退出消息循环并结束进程。忽视EndDialog可能导致进程挂起。
摘要由CSDN通过智能技术生成

在模态对话框中:

正常的用户触发的OnOK 、OnCancel消息都是通过调用函数EndDialog去关闭模态对话框的,EndDialog函数并不立即清除对话框。而是设置一个标志,并且允许对话框应用程序把控制权返回系统。系统在试图从应用程序队列检索下一个消息之前检测标志。如果已经设置了标志则系统中止消息循环,清除对话框,所以当我们想在代码中去调用EndDialog函数去结束对话框,最后再释放对话框对象。

函数原型:BOOL EndDialog(HWND hDlg,int nResult); 
  参数: 
  hDlg:表示要被清除的对话框窗口。 
  NResult:指定从创建对话框函数返回到应用程序的值。 
  返回值:如果函数调用成

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值