模态对话框 vs 非模态对话框

1、如果是模态的,那么弹出后该程序的其它窗口就呈不可用的状态,原来程序暂停执行,直到这个模态窗口关闭后才回到原来程序继续。

非模态的就是直接显示出来,然后原来的程序继续执行下面的语句,而且其它窗口也呈可用状态。


2、在弹出窗体时,弹出的窗体要以进行编辑,而主窗体不能被编辑,这样的窗体称为模式窗口,又叫模态窗口。当有弹出窗体时,主窗体也可以编辑,这样的窗体称为非模式窗体,又叫做无模式窗体。


3、创建非模式对话框需要调用CDialog::Create()函数,然后又会调用显示函数来显示,ShowWindow( SW_SHOW);不然非模式对话框将无法显示。

模式对话框的创建用DoModal,而非模式对话框的创建用Create。

4、它们的销毁也有区别,模态对话框用的EndDialog来销毁,而非模态对话框是用DestroyWindow来销毁的。

你可能感兴趣的:(对话框)