В Acrobat SDK накопал пример, который рисует определенную страницу в указанном окне:
- Код: Выделить всё
Private Sub Form_Paint()
Dim acroRect As CAcroRect
Set AcroExchPDPage = AcroExchPDDoc(Me.Tag).AcquirePage(FState(Me.Tag).nPage)
Set acroRect = CreateObject("AcroExch.Rect")
acroRect.Top = 792
acroRect.Bottom = 0
acroRect.Left = 0
acroRect.Right = 612
ok = AcroExchPDPage.DrawEx(Me.hWnd, 0, acroRect, 0, 0, FState(Me.Tag).nScale)
Set AcroExchPDPage = Nothing
End Sub
Однако форма кагбэ ничего не знает об этом — перерисовка Me.Image в другое место перерисовывает белый фон. Сохранение StdPicture в массив (bmp) сохраняет его же. Установка AutoRedraw = True и насильный вызов Form_Paint тоже продуцируют рисунок, но он стирается при заслонении формы другим окном, а так же при любом обращении к Form.Image. Еще наблюдение: сабклассинг формы говорит, что в момент выполнения AcroExchPDPage.DrawEx не происходит ровным счетом ничего.
Как же все-таки вытащить рисунок, который демонстрирует такое неадекватное поведение?