如果我在按如下方式构造的对话框上调用CDialog::SetWindow:CDialog *tmp=new CDialog(IDD_TEST, theParent);,那么它就会崩溃。如果我调用,CDialog *tmp=new CDialog(); tmp->Create(IDD_TEST, theParent);,它就不会。为什么?
发布于 2011-03-22 11:22:11
MFC在这方面是很有趣的。创建一个C++对象并不会创建相应的窗口;它是一个两步的过程。您的第二个示例完全按照微软的预期,创建了C++类,然后创建了它应该控制的窗口。如果你试图在窗口存在之前调用窗口控制函数,就会发生不好的事情。
https://stackoverflow.com/questions/5385418
复制相似问题