如何制作CDialog?

时间:2017-09-12 09:24:49

标签: c++ mfc cdialog

我尝试过多种方法,但基础就是这样:

#include <stdio.h>
#include <afxwin.h>


main( int argc, const char* argv[] )
{

   printf( "\nHello World\n\n" );

   CDialog *dlg = new CDialog();
   dlg->DoModal();

   while (true) {
      Sleep(1); // Sleep is a windows function
   }
}

当我运行它时,我收到以下错误:

Debug Assertion Failed Message

此对话框我缺少什么?

我查找了几个资源,但是所有内容都会产生相同的错误消息。

有人可以告诉我我没看到什么吗?

1 个答案:

答案 0 :(得分:3)

在控制台应用程序中使用MFC需要一些初始化。 如果没有这个,你就会得到断言。

int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
    // initialize MFC and print and error on failure
    if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
    {
        // TODO: change error code to suit your needs
        _tprintf(_T("Fatal Error: MFC initialization failed\n"));
        return 8;
    }

您还必须使用绑定到CDialog的资源。您可以使用适当的构造函数。或者您使用类向导从CDialog派生自己的对话框。

但是,创建一个MFC控制台应用程序并使用对话框对我来说没有意义......您的问题可能需要更多详细信息,您想要做什么,以及您希望以这种方式执行此操作的原因。

在继续这种编程方式之前,您可能需要阅读一些书籍或文章。