CDialog::CreateIndirect

调用该成员函数创建从对话框模板的无模式对话框在内存中。

virtual BOOL CreateIndirect(
   LPCDLGTEMPLATE lpDialogTemplate,
   CWnd* pParentWnd = NULL,
   void* lpDialogInit = NULL
);
virtual BOOL CreateIndirect(
   HGLOBAL hDialogTemplate,
   CWnd* pParentWnd = NULL
);

参数

  • lpDialogTemplate
    指向包含一些一个对话框模板创建对话框的内存。在 DLGTEMPLATE 结构和控件信息的形式,此模板是,如 Windows SDK所述。

  • pParentWnd
    指向对话框对象的父窗口对象(类型 CWnd)。如果是 NULL,对话框对象的父窗口设置为主应用程序窗口。

  • lpDialogInit
    指向 DLGINIT 资源。

  • hDialogTemplate
    包含的句柄。包含对话框模板的全局内存。此模板与 DLGTEMPLATE 结构和数据的形式为每个控件在对话框。

返回值

非零,如果对话框已成功创建并初始化为;否则为0。

备注

然后再创建对话框之后,CreateIndirect 成员函数返回。

请使用 WS_VISIBLE 样式在对话框模板,如果对话框应显示父窗口中创建。否则,必须调用 ShowWindow 使其显示。有关如何的更多信息在模板中指定其他对话框样式,请参见。Windows SDK的 DLGTEMPLATE 结构。

使用 CWnd::DestroyWindow 功能销毁 CreateIndirect 功能创建的对话框。

包含ActiveX控件的对话框需要在 DLGINIT 资源提供的附加信息。有关更多信息,请参见知识库文章Q231591,“如何:使用一个对话框模板将ActiveX控件创建MFC对话框”。知识库文章可以在 MSDN Library Visual Studio 文档中或从 https://support.microsoft.com/default.aspx?ln=zh-cn 上获得。

要求

Header: afxwin.h

请参见

参考

CDialog选件类

层次结构图

CDialog::CDialog

CWnd::DestroyWindow

CDialog::Create

CreateDialogIndirect