задаче следующая:
MFC SDI програмулина, диалог которой разбит на 2 части сплиттером (splitter window).
так вот, необходимо в одной из частей этого диалога открывать вордовый шаблон (*.dot) из базы Аксеса и после изменения шаблона класть обратно в базу. при открытии вордового шаблона так же необходимо отображение тулбаров ворда, но чтобы меню ворда не заменяло меню моей проги.
возникают следующие вопросы:
— в сторону каких классов смотреть для того чтобы открывать и редактировать вордовый шаблон, так же необходима возможность создания нового шаблона ворда с нуля
— каким образом отображать окно ворда в своей програмулине, но без замены меню
— как открывать и писать вордовый шаблон в базу Аксеса, т.е. производить все операции через темповый файл или можно работать напрямую с объектом в базе?
P.S. смотрел пример XOffice, но он не подходит я думаю т.к. меню проги там заменяется на меню ворда
P.S.S. прошу в своих ответах отнестить ко мне как новичку, каковым я и являюсь
Здравствуйте, workflow, Вы писали:
W>задаче следующая: W>MFC SDI програмулина, диалог которой разбит на 2 части сплиттером (splitter window). W>так вот, необходимо в одной из частей этого диалога открывать вордовый шаблон (*.dot) из базы Аксеса и после изменения шаблона класть обратно в базу. при открытии вордового шаблона так же необходимо отображение тулбаров ворда, но чтобы меню ворда не заменяло меню моей проги.
Довольно геморойная задача для новичка, IMHO.
W>возникают следующие вопросы: W> — в сторону каких классов смотреть для того чтобы открывать и редактировать вордовый шаблон, так же необходима возможность создания нового шаблона ворда с нуля
Рабочий вариант — встроить микрософтовский DSOFramer. Это на самом деле работает.
Второй вариант — встроить InhternetExplorer (web browser control), в нем открыть документ ворда.
Но вы получите существенно меньше контроля над тем что происходит.
Реализовывать OLE Container руками — ИМХО самоубийство. Для новичка точно.
W> — каким образом отображать окно ворда в своей програмулине, но без замены меню
см. выше статью про DSOFramer, там по-моему было напмсано про меню.
W> — производить все операции через темповый файл или можно работать напрямую с объектом в базе?
Напрямую без файла ворд не умеет.
По крайней мере, мне нормальный способ заставить ворд работать без темпового файла неизвестен.
Re[2]: MFC SDI & Word & Access
От:
Аноним
Дата:
10.09.07 05:34
Оценка:
Здравствуйте, bnk, Вы писали:
bnk>Здравствуйте, workflow, Вы писали:
bnk>Довольно геморойная задача для новичка, IMHO.
но тем немениее задача есть, да я и не первый день вижу с++
W>>возникают следующие вопросы: W>> — в сторону каких классов смотреть для того чтобы открывать и редактировать вордовый шаблон, так же необходима возможность создания нового шаблона ворда с нуля
bnk>Рабочий вариант — встроить микрософтовский DSOFramer. Это на самом деле работает.
этот вариант гляну обязательно
bnk>Реализовывать OLE Container руками — ИМХО самоубийство. Для новичка точно.
ну а если добавить контейнер при генерации аплекухи визардом?
т.е. вопсро в следующем, получу ли я нужный мне функционал используя ОЛЕ контейнер?
bnk>см. выше статью про DSOFramer, там по-моему было напмсано про меню.
через ОЛЕ контейнер я смогу открывать в части своего окна (у меня сплиттер виндоу) документа ворда со всеми его (вордовскими) тул барами и с меню ворда?
так же вопрос такой:
смогу ли я отлавливать события ворда, в честности создание документа или выход из программы?
bnk>Напрямую без файла ворд не умеет. bnk>По крайней мере, мне нормальный способ заставить ворд работать без темпового файла неизвестен.
ну я так и думал, с этим проблем нет...
Здравствуйте, Аноним, Вы писали:
А>ну а если добавить контейнер при генерации аплекухи визардом? А>т.е. вопсро в следующем, получу ли я нужный мне функционал используя ОЛЕ контейнер?
DSOFramer — это как раз (работающая) реализация OLE Container -а.
"Взгляните и ужаснитесь", что называется.
Здравствуйте, bnk, Вы писали:
bnk>DSOFramer — это как раз (работающая) реализация OLE Container -а. bnk>"Взгляните и ужаснитесь", что называется.
bnk>
не буду спорить, но в примере XOffice (в статье на этом сайте) вроди как ОЛЕ контейнер юзается или я ошибаюсь?
вроди как ничего сложного в этом примере нет...
а если заюзать контрол интернет браузера, то получу ли я полнофункциональный ворд в своем приложении с возможностью последующего управления этим самым вордом или документом открытым в нем?
Здравствуйте, input, Вы писали:
I>не буду спорить, но в примере XOffice (в статье на этом сайте) вроди как ОЛЕ контейнер юзается или я ошибаюсь? I>вроди как ничего сложного в этом примере нет...
Ну не знаю.
Лично меня все эти IOleXyz вместе COleXyz просто вгоняли в ступор...
А разбираться "как избавиться от MDI", "как положить это на сплиттер", "как положить это на диалог", "как убрать меню",
"как сделать чтобы при этом все красиво ресайзилось" IMHO тяжко..
Здравствуйте, bnk, Вы писали:
bnk>Ну не знаю. bnk>Лично меня все эти IOleXyz вместе COleXyz просто вгоняли в ступор... bnk>А разбираться "как избавиться от MDI", "как положить это на сплиттер", "как положить это на диалог", "как убрать меню", bnk>"как сделать чтобы при этом все красиво ресайзилось" IMHO тяжко..
в примере про XOffice есть пример создания ОЛЕ контейнера (или это по другому называется?)
так вот на основании этого примера попробую сделать то же самое, но для SDI, а потом уже сплиттер прикрутить попробую.
пробовал вчера открывать *.doc в контроле веб браузера, так он выводит диалог сначала, мол что сделать, открыть или сохранить, а потом открывает документ, но функционал ворда урезан, нет ни тул баров, да почти ничего нет.
это не есть гут.
или есть способы?
Здравствуйте, input, Вы писали:
I>Здравствуйте, bnk, Вы писали:
bnk>>Ну не знаю. bnk>>Лично меня все эти IOleXyz вместе COleXyz просто вгоняли в ступор... bnk>>А разбираться "как избавиться от MDI", "как положить это на сплиттер", "как положить это на диалог", "как убрать меню", bnk>>"как сделать чтобы при этом все красиво ресайзилось" IMHO тяжко..
I>в примере про XOffice есть пример создания ОЛЕ контейнера (или это по другому называется?) I>так вот на основании этого примера попробую сделать то же самое, но для SDI, а потом уже сплиттер прикрутить попробую.
I>пробовал вчера открывать *.doc в контроле веб браузера, так он выводит диалог сначала, мол что сделать, открыть или сохранить, а потом открывает документ, но функционал ворда урезан, нет ни тул баров, да почти ничего нет. I>это не есть гут. I>или есть способы?
Здравствуйте, workflow, Вы писали:
W>здравсвуйте!
W>задаче следующая:
skip
все сделал.
т.е. сделал контейнер ОЛЕ или как это называется.
у меня SDI, класс xxxDoc, которого наследуется от COleDocument, еще есть класс наследуемый от COleDocObjectItem.
отображаю "ворд" в представлении xxxView своего приложения.
вопрос такой:
как ловить всяческие события "ворда", открытого как описано выше?
т.е. как подключиться к механизму и т.п.
пожалуйста с примером...