非模式对话框与模式对话框
使用区别:
模式对话框不允许用户在对话框关闭之前操作应用程序的其他窗口。
非模式对话框则允许用户在该对话框和应用程序其他窗口之间切换。
创建区别:
相同点 都是要首先建立对话框类完成话框的功能然后再调用。
不同点 调用方式不同
模式对话框 使用Domodal函数来创建窗口。
例如:
CModeDialog ModeDlg;
ModeDlg.DoModal();
窗口关闭则销毁了对话框。
非模式对话框使用create函数来创建。
例如:
声明 CPointInfo *m_pPointInfo;
构造函数中初始化
m_pPointInfo == NULL;
创建窗口
if(m_pPointInfo != NULL)
{
m_pPointInfo->Create(IDD_MOUSE_POINT_DIALOG,this);
m_pPointInfo->ShowWindow(SW_SHOW);
}
注意: 因为用户可以在非模式窗口和模式窗口之间切换就有可能主窗口关掉而子窗口没关掉。所以在主窗口的析构函数中应该把子窗口删掉。
if(m_pPointInfo != NULL)
{
m_pPointInfo->DestroyWindow();
delete m_pPointInfo;
}