Обновление главного окна Force Powerpoint - PullRequest
0 голосов
/ 19 января 2012

У меня есть PowerPoint AddIn в VSTO, который выполняет некоторые операции, такие как импорт слайда из шаблона.

Для удобства пользования я открываю шаблон с помощью WithWindow = MsoTriState.msoFalse

После вставки слайда панель слайдов не обновляется.

Я пробовал некоторые вызовы WinAPI, такие как RedrawWindow, но он не работает

Как я могу заставить окно PowerPoint обновляться полностью?

Ответы [ 2 ]

0 голосов
/ 20 января 2012

Я думаю, что использовал InvalidateRect, чтобы заставить PowerPoint перекрашивать окно, но помните, что у меня возникли трудности при использовании его с нулевым прямоугольником.

Вы можете попробовать это

<StructLayout(LayoutKind.Sequential)> _
Public Structure RECT
    Public left As Integer
    Public top As Integer
    Public right As Integer
    Public bottom As Integer
End Structure

...
Dim windowRect As RECT
GetWindowRect(New IntPtr(Application.HWND), windowRect)
InvalidateRect(New IntPtr(Application.HWND), New Rectangle(0, 0, windowRect.right - windowRect.left, windowRect.bottom - windowRect.top), True)
0 голосов
/ 20 января 2012

Вызовите метод NewWindow объекта презентации. Вот пример VBA:

Sub ShowYourStuff()

    Dim oPres As Presentation
    Set oPres = Presentations.Add(msoFalse)
    oPres.Slides.Add 1, ppLayoutChart
    oPres.Slides.Add 1, ppLayoutFourObjects

    MsgBox "Ready to show the user stuff?"

    oPres.NewWindow

End Sub
...