在设计完对话框资源并创建了相应的对话框类之后,接下来的任务是在程序中创建并显示对话框。其中对话框的显示方式有两种,即模式对话框和非模式对话框。
何谓模式/非模式对话框?有何区别?
在模式对话框中,如果用户不关闭该对话框,将不能切换到程序的其他对话框中。而对于非模式对话框而言,我们可以随意地进行对话框切换。
1、创建模式对话框:
首先定义一个对象,然后调用该对象的DoModal方法即可创建一个模式对话框。
或者采用在堆中分配的方法。即利用new运算符来构建对象,使用delete运算符来释放对象。
2、创建非模式对话框
但是在该模式中,如果将非模式对话框关闭,再单击“确定”按钮创建新对话框,将会出现错误。这是因为关闭非模式对话框时,只是隐藏了对话框,而没有销毁由Create方法创建的对话框资源,此时再调用Create方法创建对话框时,由于当前的m_Book对象已经有了关联的对话框,因此导致了错误发生。解决方式是使用IsWindow函数先来判断m_Book对象是否关联了对话框。如果没有在调用Create方法创建对话框。