如何以编程方式创建一个CDialog窗口?

时间:2012-04-04 08:07:41

标签: c++ visual-c++ mfc

我不想使用“图形资源”来创建对话框!

到目前为止我所拥有的:

CDialog *dlgWin = new CDialog();
dlgWin->Create("hello");  // <-- but this Errors: "Debug Assertion failed!"

THX

2 个答案:

答案 0 :(得分:2)

您需要在资源编辑器中创建对话框模板,并将其提供给CDialog构造函数。

这是documentation,它们还解释了如何在内存中动态创建对话框,这不是一件容易的事,我建议反对它。我建议不要完全使用MFC。

MSDN文档通常编写得很好,阅读它。

答案 1 :(得分:1)

我为所有对话框使用一个空对话框模板,然后使用我自己的GUI布局库来生成和管理MFC小部件的大小。不知道你是否真的想要这样做,因为它需要大量的额外工作,既有问题也有功能。

使用Qt或GTK可能是一种方式,但我不喜欢它们。