Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Встраивание Ms Word в окно своего приложения
Форум программистов > Системное программирование > C, С++ и С Builder > Borland C++ Builder & Kylix
WishMaster
Доброе время суток!
Когда то давно помню читал где-то, как можно встроить приложение Word в свое приложение таким образом, чтобы Word открывался не отдельным окном-приложением, а загружался бы в заданном объекте (только какой это объект?) своего приложения. Но сейчас уже все забыл smile.gif Кто-нибудь с таким сталкивался? Как можно сделать так, чтобы Word открылся именно в заданной области моего приложения? Управление им (запуск сервера, открытие документов и т.п.) - не вопрос.
Заранее благодарен за советы.
etc
TOleContainer +F1
WishMaster
OLEContainer’ом пока не доволен по следующим причинам:
1) меню Ворда интегрируется в меню приложения. Я хотел бы, чтобы меню Ворда оставалось «при нем» и не создавало лишний «ажиотаж» в меню приложения smile.gif
2) при щелчке мышью на другом компоненте не могу вернуть фокус назад в Ворд;
3) не знаю, как получить указатель на созданный в ОЛЕ контейнере ворд, чтобы управлять им (например, создать там какой-либо текст).
Я создал простенький проект, на котором можно при желании ознакомиться с объектом моего недовольства smile.gif Есть главная форма MainForm, в которой можно создавать дочерние формы ChildForm с ОЛЕ контейнером. В конструкторе дочерней формы в ОЛЕ контейнер загружается Ворд. В главной форме есть меню, в которое сразу «залазит» непрошенное меню Ворда smile.gif При нажатии на Button1 в дочерней форме вернуть фокус клацаньем на Ворд мне не удается. Так же не знаю, как получить указатель на Ворд в конкретном дочернем окне.

Кто-нибудь знает, как бороться с такими «недостатками»?
Или может быть есть какой-нибудь другой, более продвинутый способ интеграции Ворда? В таком случае буду благодарен за пример.

Нажмите для просмотра прикрепленного файла
etc
Цитата(WishMaster @ 21:07:2008 - 17:55) *
не знаю, как получить указатель на созданный в ОЛЕ контейнере ворд
см. TOleContainer.OleObject
WishMaster
Цитата(etc @ 21:07:2008 - 18:42) *
см. TOleContainer.OleObject

Спасибо, разобрался. Осталось непонятным:
1) как отключить встраивание меню и кнопочной панели;
2) как возвращать в Ворд фокус (чтобы можно было убирать из него курсор и возвращать назад как при работе с обычным RichEdit).
etc
Цитата(WishMaster @ 21:07:2008 - 22:36) *
как отключить встраивание меню и кнопочной панели;
Тут наверное надо смотреть на сам ворд.
Цитата(WishMaster @ 21:07:2008 - 22:36) *
как возвращать в Ворд фокус
А что происходит когда фокус теряется?
WishMaster
Цитата(etc @ 22:07:2008 - 07:10) *
Тут наверное надо смотреть на сам ворд

В самом ворде, на сколько знаю, можно варьировать наличие тех или иных панелей (не знаю, можно ли меню). Но вопрос не в этом. Вопрос в том, как сделать так, чтобы они оставались в ворде, а не лезли в приложение. Я не знаю таких настроек в ворде :-\

Цитата(etc @ 22:07:2008 - 07:10) *
А что происходит когда фокус теряется?

Ворд становиться неактивным и потом сколько я в него не тыкаю, фокус назад не возвращается. Единственный вариант - расширить ОЛЕ контейнер и ткнуть не на ворд, а непосредственно на сам контейнер - тогда фокус возвращается. Тыканье же на ворд не удается отследить ни в каком обработчике :-\
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2008 IPS, Inc.