MFC中如何只显示一个模态对话框?

在MFC中,点击触发按钮,动态创建一个非模态对话框。然而如果多次点击触发按钮却可以显示多个同样的非模态对话框,不便于使用。因此在程序中,显示非模态对话框前,需要先检验该对话框是否存在,若不存在,则创建该对话框,否则显示当前对话框。

方法如下:

CDialog dlg;
if(dlg.m_hWnd){
	dlg.SetActiveWindow();
}else{
	dlg.Create(IDD_DIALOG1,GetDesktopWindow());
	dlg.SetWindowText("非模态对话框");
	dlg.ShowWindow(SW_SHOWNORMAL);
}
这样可以保证一个非模态对话框只能被显示一个窗口。

另外,还可以在对话框类中定义一个bool变量显示该对话框是否已被创建,原理与上述代码相同。



评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值