将 ICDBurn 对话框设置为模式或始终在顶部



我有一个WPF应用程序,使用ICDBurn接口将一些数据刻录到磁盘上。调用ICDBurn::Burn后将显示一个对话框,在处理此对话框之前,用户不应能够继续使用应用程序,这不是默认行为。我尝试将IntPtr.Zero和应用程序主窗口句柄作为父窗口句柄传递给ICDBurn::Burn,但结果是一样的。

所以我希望这个对话框是模态的,但我也会满足于将此对话框设置为始终在顶部。

作为第一步,我想我需要对话框窗口的句柄。我尝试EnumChildWindows但在那里找不到对话框。如何将此对话框设置为模式?

编辑:根据IInspectable的评论,我可能将错误的窗口句柄传递给了Burn。我正在使用new WindowInteropHelper(Application.Current.MainWindow).Handle,我想我在应用程序中没有使用其他窗口。

啊,WPF...

要使 ICDBurn::Burn 作为模态对话框正确打开,必须在 UI 线程上调用它(使用 Application.Current.MainWindow.Dispatcher )。

最新更新