非模态对话框生成与模态有相似之处,主要不同在于模态采用DoModal函数生成,而非模态采用Create函数;而且非模态对话框生存周期较长,一般和父窗口的生存周期相同。
到添加类一步,非模态与模态都是相同的,由于要使用Create函数,因为要在生成非模态对话框的父窗口中添加对话框类的指针,类型为(假设添加类时,非模态对话框类为CModallessDlg)CModallessDlg *,假设指针名为m_pModalessDlg。
在程序的适当处添加下列代码即可生成、显示非模态对话框:
m_pModalessDlg=new CModallessDlg;
m_pModalessDlg->Create(标识,this);
m_pModalessDlg->ShowWindow(SW_SHOW);
在退出前要清除生成的非模态对话框:
delete m_pModalessDlg;
m_pModalessDlg=NULL;
参考王华、朱时银、史兰等编著《VC++.NET 开发指南与实例详析》, 机械工业出版社
说明:本人是初学者,理解可能偏颇很多,欢迎评论及指点