2012-01-19 2 views
0

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

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

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

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

Как я могу заставить окно целой Powerpoint, чтобы обновить?

ответ

0

Вызвать метод 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 
0

Я думаю, что я использовал 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) 
Смежные вопросы