PPT插件开发 - VSTO独立窗口和窗口跟随

独立窗口

开发时遇到ppt打开新窗口时要显示到任务栏,本来是很简单的问题,因为不熟悉桌面开发费了一天时间查资料,现在记录到博客里,避免继续踩坑

  • ShowInTaskbar的设置,设置后会在任务栏显示窗口
  • TopMost的设置,设置后会在始终显示在顶层,缺点是会遮挡用户开的其他窗口,包括非当前进程的
  • show的时候不要指定IntPtr,指定后依然不会置顶,仅会置于绑定的窗口顶层

窗口跟随

这种模式会使打开的窗口跟随父窗口,不会遮挡其他窗口,是比较常用的模式

  • 需要在show的时候指定IntPtr
    代码示例
    /// <summary>
    /// 置顶窗口在当前窗口上
    /// WinformHelper owner = new WinformHelper(Globals.ThisAddIn.Application.HWND);
    /// form.Show(owner);
    /// </summary>
    class WinformHelper : IWin32Window
    {
        private IntPtr m_Handle;
        public IntPtr Handle
        {
            get { return m_Handle; }
        }
        //构造函数,参数是父窗口的句柄
        public WinformHelper(int handle)
        {
            this.m_Handle = new IntPtr(handle);
        }
    }
WinformHelper owner = new WinformHelper(Globals.ThisAddIn.Application.HWND);
_pptDetial.Show(owner);
posted @ 2022-01-06 10:17  Z_DK  阅读(283)  评论(0编辑  收藏  举报