`CDialog :: SetWindowPos`崩溃

时间:2011-03-22 00:37:24

标签: mfc

如果我在如下构造的对话框上调用CDialog::SetWindowCDialog *tmp=new CDialog(IDD_TEST, theParent);,那么它会崩溃。如果我打电话给CDialog *tmp=new CDialog(); tmp->Create(IDD_TEST, theParent);,那就不会。怎么样?

1 个答案:

答案 0 :(得分:3)

MFC有点搞笑。创建C ++对象不会创建相应的窗口;这是一个两步的过程。你的第二个例子完全按照微软的意图,创建C ++类,然后创建它应该控制的窗口。如果在窗口存在之前尝试调用窗口控制功能,则会发生不好的事情。