在MFC编程中,为什么不可以直接用CDialog类创建 模态对话框?CDialog dlg; dlg.DoModal();出错。为什么?
展开全部
必须要跟一个对话框资源关联才行。
像你这样,这个dlg连自己的皮在哪儿都不知道,你让他出来现身(domodal)那不瞎搞嘛。
像你这样,这个dlg连自己的皮在哪儿都不知道,你让他出来现身(domodal)那不瞎搞嘛。
追问
还能具体点啊?
我知道一般的做法是:添加一个对话框资源,然后为它关联一个类,比如CDialogDlg,再用这个类创建一个对话框CDialogDlg dlg;dlg.DoModal(),能否解释一下,为什么用基类CDialog直接创建就有问题? 我对这个表示不解。
追答
CDialog只是一个普通对话框的代表,是一个通用类,它的作用就是提供作为一个对话框的各种功能,但这些功能必须要作用在一个实实在在的对话框上才行,所以,你要想弹出一个实实在在的对话框,或者要关闭一个实实在在的对话框,或者通过CDialog提供的SetWindowText函数改变对话框的标题,那么就必须有一个实实在在的对话框存在才行,这就是为什么必须要有一个对话框资源与CDialog联系起来才行,呵呵,说的有些乱,也不知你能不能理解,哈哈。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询