模式对话框和无模式对话框创建和使用上的区别?
先创建对话框模板,然后创建类。无模式对话框的对象是不是还要使用Create,而模式对话框就不需要了。
或者说他们在创建和使用上有什么区别
问题点数:0、回复次数:4Top
1 楼kpld8888(kpld)回复于 2004-09-04 11:05:55 得分 0
CModalDlg modal;//模态
modal.DoModal();
CUnModalDlg unModal;//非模态
unModal.Create(...);
unModal.Show();
...
unModal.Destroy(...);Top
2 楼memory_xj(青蛙)回复于 2004-09-04 11:17:08 得分 0
最直观的区别是模式对话框含有IDOK和IDCANCEL而无模式对话框没有。创建时,无模式对话框适合在堆上建立,yourDialog *pDlg = new yourDialog(this);用pDlg->Create(DIALOG_ID, this);接着用ShowWindow()来控制对话框的显示和隐藏,用delete pDlg来清除这个对话框。而有模式对话框直接构造,用DoModal()来显示。Top
3 楼stevecrisewu(月亮骑士)回复于 2004-09-04 12:00:33 得分 0
补充
模态必须关闭后程序才能继续往下执行。Top
4 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2004-09-04 15:21:49 得分 0
模式对话框工作的时候,有其内部的消息泵机制。
而非模式对话框则象普通窗口一样,由WinMain中书写的消息循环驱动。Top




