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