如何根据形状的位置放置用户窗体
how to place userform basing on a position of a shape
我正在开发 PowerPoint 插件。我想根据某些 PowerPoint 形状的位置将创建的用户窗体放置在屏幕上,用户窗体应放置在形状上方。我设法为 Excel 找到了可能有用的方法:application.usedwidth application.usedheight、activewindow.usedheight 和 activewindow.usedwidth,但我找不到用于 PowerPoint 的此类方法。
有什么方法可以将 "convert" PowerPoint 形状位置转换为用户窗体位置?是否可以检查所有使用的任务窗格的宽度和高度以确定 "pane" 与幻灯片等的位置?
前段时间我做到了。
private void UpdatePosition(PPT.Shape shape, PPT.Presentation pres)
{
this.Left = pres.Application.ActiveWindow.PointsToScreenPixelsX((float)(0 + shape.left + 0.5 * shape.Width)) - (0.5 * this.Width);
this.Top = pres.Application.ActiveWindow.PointsToScreenPixelsY((float)(0 + shape.Top - 20)) - this.Height;
}
我正在开发 PowerPoint 插件。我想根据某些 PowerPoint 形状的位置将创建的用户窗体放置在屏幕上,用户窗体应放置在形状上方。我设法为 Excel 找到了可能有用的方法:application.usedwidth application.usedheight、activewindow.usedheight 和 activewindow.usedwidth,但我找不到用于 PowerPoint 的此类方法。 有什么方法可以将 "convert" PowerPoint 形状位置转换为用户窗体位置?是否可以检查所有使用的任务窗格的宽度和高度以确定 "pane" 与幻灯片等的位置?
前段时间我做到了。
private void UpdatePosition(PPT.Shape shape, PPT.Presentation pres)
{
this.Left = pres.Application.ActiveWindow.PointsToScreenPixelsX((float)(0 + shape.left + 0.5 * shape.Width)) - (0.5 * this.Width);
this.Top = pres.Application.ActiveWindow.PointsToScreenPixelsY((float)(0 + shape.Top - 20)) - this.Height;
}