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);