我已经为我的 Outlook 添加了一个自定义消息框。现在,当显示此消息框时,它与 Outlook 的主窗口取消链接。如何将我的窗口与 Outlook 窗口“附加”为普通消息框?有没有链接到windows的属性?
- 编辑 - -
问题很简单:
- 打开展望
- 在 Outlook 中显示自定义消息框
- 更改焦点(我打开一个新窗口,例如 chrome 浏览器
- 返回 Outlook:现在我的消息框没有“链接”到 Outlook。我希望在 Outlook 窗口打开时始终显示我的消息框
我已经为我的 Outlook 添加了一个自定义消息框。现在,当显示此消息框时,它与 Outlook 的主窗口取消链接。如何将我的窗口与 Outlook 窗口“附加”为普通消息框?有没有链接到windows的属性?
- 编辑 - -
问题很简单:
检索 Outlook 的 HWND 的更严格的方法是将 Application.ActiveWindow(可以是 Explorer 或 Inspector)转换为 IOleWindow 并调用 IOleWindow.GetWindow()。
最后我解决了。在我的消息框的代码中,我插入了以下代码:
IntPtr hWnd = Process.GetProcessById(Process.GetCurrentProcess().Id).MainWindowHandle;
System.Windows.Interop.WindowInteropHelper wih = new System.Windows.Interop.WindowInteropHelper(this);
wih.Owner = hWnd;
如此处所示
像这样,任何类型的消息(消息框,应用程序的一般处理错误)都“挂钩”到主应用程序。应用程序由 Process.GetCurrentProcess().Id 计算。
希望这对将来的人有所帮助。