IOperationsProgressDialog::StartProgressDialog 方法 (shobjidl_core.h)

启动指定的进度对话框。

语法

HRESULT StartProgressDialog(
  [in] HWND       hwndOwner,
  [in] OPPROGDLGF flags
);

参数

[in] hwndOwner

类型:HWND

父窗口的句柄。

[in] flags

类型:DWORD

自定义操作的标志。 请注意,这些标志在 Shlobj.h 中声明。 以下值的组合:

PROGDLG_NORMAL (0x00000000)

默认的正常进度对话框行为。

PROGDLG_MODAL (0x00000001)

对话框是其 hwndOwner 的模式。 默认设置为无模式。

PROGDLG_AUTOTIME (0x00000002)

使用剩余时间更新“Line3”文本。 无需隐式设置此标志,因为 IOperationsProgressDialog::StartProgressDialog 启动的进度对话框会自动显示剩余时间。

PROGDLG_NOTIME (0x00000004)

不显示剩余时间。 我们不建议通过 IOperationsProgressDialog 设置此标志,因为这与对话框的用途相反。

PROGDLG_NOMINIMIZE (0x00000008)

不显示最小化按钮。

PROGDLG_NOPROGRESSBAR (0x00000010)

不显示进度栏。

PROGDLG_MARQUEEPROGRESS (0x00000020)

此标志在此方法中无效。 若要将进度栏设置为选框模式,请使用 IOperationsProgressDialog::SetMode 中的标志。

PROGDLG_NOCANCEL (0x00000040)

由于无法取消操作,因此不显示取消按钮。 仅当绝对必要时才使用此值。

OPPROGDLG_DEFAULT (0x00000000)

Windows 7 及更高版本。 指示默认的正常操作进度对话框行为。

OPPROGDLG_ENABLEPAUSE (0x00000080)

显示暂停按钮。 仅在可以暂停操作的情况下使用此方法。

OPPROGDLG_ALLOWUNDO (0x00000100)

可以通过对话框撤消操作。 “ 停止 ”按钮变为 “撤消”。 如果按下,“ 撤消 ”按钮将恢复为 “停止”。

OPPROGDLG_DONTDISPLAYSOURCEPATH (0x00000200)

不要在进度对话框中显示源文件的路径。

OPPROGDLG_DONTDISPLAYDESTPATH (0x00000400)

不要在进度对话框中显示目标文件的路径。

OPPROGDLG_NOMULTIDAYESTIMATES (0x00000800)

Windows 7 及更高版本。 如果估计完成时间大于一天,则不显示时间。

OPPROGDLG_DONTDISPLAYLOCATIONS (0x00001000)

Windows 7 及更高版本。 不要在进度对话框中显示位置行。

返回值

类型: HRESULT

如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。

注解

进度对话框应在与报告对话的文件操作不同的线程上创建。 如果对话框在文件操作所在的同一线程中运行,则进度消息充其量只能在资源允许的情况下发送。 与文件操作相同的线程上的进度消息可能根本不发送。

调用 IOperationsProgressDialog::StartProgressDialog 后,IProgressDialogIActionProgressDialogIActionProgress 无法访问 CLSID_ProgressDialog 对象的实例。 尽管 QueryInterface 可用于访问这些接口,但无法调用其大多数方法。 IOperationsProgressDialog 是用于显示 Windows Vista 和更高版本操作引擎的新进度对话框的接口。

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 shobjidl_core.h (包括 Shobjidl.h)