Author |
Topic |
|
Black_Serdzh
Russia
8 Posts |
Posted - 12/10/2004 : 13:03:32
|
И ещё одна просьба. Подскажите, пожалуйста, как сделать так, чтобы изображение страницы отрисовывалось на каком-либо контексте или в файл? Я пробовал написать код, но отрисовать так и не получилось. :( Знаю, что для захвата изображения страницы используется свойство Picture страницы. О свойстве можно почитать здесь http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vissdk11/html/viproPicture.asp А здесь http://msdn.microsoft.com/library/default.asp?url=/library/en-us/com/htm/ctin_p_482t.asp можно почитать об интерфейсе IPicture, у которого есть метод Render, с помощью которого и осуществляется отрисовка изображения, полученного свойством Picture. Вообще-то Picture возвращает тип stdole.IPictureDisp, но у объекта такого типа нет метода Render, поэтому я объявлял объект типа stdole.IPicture, а возвращаемый результат от свойства Picture приводил к типу IPicture. Вот такой каламбур. Может я и не правильно делал? Я пытался изобразить, но отрисовка у меня так и не получилась, окошко было пустым. Кстати можно не только на каком-либо контексте отрисовывать, но и записывать в файл, что у меня тоже не получилось. Наверное, я делаю что-то не так.
Подскажите, плиизз, как же всё таки сделать так, чтобы всё заработало. Если можно, приведите работающий код, который можно протестить.
Большое спасибо!
|
Edited by - Black_Serdzh on 12/10/2004 13:11:15 |
|
Tumanov
Russia
1198 Posts |
Posted - 12/10/2004 : 21:31:39
|
Вообще-то рисованием я не занимался, но сейчас попробовал вот это:
Макрос Sub ttt() UserForm1.Show 1 End Sub
Пустая формочка с одним обработчиком Private Sub UserForm_Activate() UserForm1.Picture = ActiveWindow.Selection(1).Picture End Sub
Если теперь нарисовать что-нибудь на листе Visio, сгруппировать это, селектировать и выполнить макрос ttt, то на выскочившей формочке появится это изображение. Мне понравилось :) Можно изображение отдельного шейпа перенести, тогда группировать не надо. Вот только 2 момента где-то проскочили: 1. В Visio при этом поддерживается только формат emf. 2. Все это работает в "in-proc solutions", то есть во внешний exe не перенесешь. Хотя, я не пробовал, может уже что и изменилось...
Это Вам никак не поможет? |
|
|
Black_Serdzh
Russia
8 Posts |
Posted - 12/15/2004 : 09:55:39
|
Ещё раз большущее спасибо за ваши ответы, за вашу помощь. Мы же делаем графический редактор на базе Visio и я реализую все функции в самом exe-шнике, так что буду пробовать. А в visio да, действительно всё клево получается. Вот ссылочка ну другой форум http://www.rsdn.ru/forum/?mid=936849 , где я задавал мой вопрос и получил ответ. Вообщем буду экспериментировать. Если у меня всё получится, то могу и код выложить, если хотите. А ещё можно сделать вот так:
Private Sub UserForm_Activate()
UserForm1.Picture = ActiveWindow.Document.Pages(1).Picture
End Sub
|
Edited by - Black_Serdzh on 12/15/2004 10:04:53 |
|
|
|
Topic |
|
|
|