Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.22.171.136] |
|
Сообщ.
#1
,
|
|
|
Добрый вечер народ, подскажите где глянуть пример работы с колонтитулами, везде натыкаюсь только на VBA, а нужно Visual C++
|
Сообщ.
#2
,
|
|
|
Так же как на VBA, только на Visual C++. Классы OLE одинаковые, интерфейсы идентичные. Разница только в получении интерфейсов. И кое-где ещё чуточку в значениях, но это исключительно из-за разных языков.
|
Сообщ.
#3
,
|
|
|
Я не спорю, что так же но как например вот это преобразовать:
With ActiveDocument.Sections(1) .PageSetup.DifferentFirstPageHeaderFooter = True .Footers(wdHeaderFooterPrimary).PageNumbers.Add _ FirstPage:=True End With Добавлено не тот пример... With ActiveDocument .PageSetup.DifferentFirstPageHeaderFooter = True .Sections(1).Footers(wdHeaderFooterFirstPage) _ .Range.InsertBefore _ "Written by Kate Edson" End With |
Сообщ.
#4
,
|
|
|
Ну, на API я бы, пожалуй, смог привести код. Когда-то писал аппликуху, без использования любых библиотек типов, чисто на IDispatch и WinAPI, общающуюся с Word и Excel серверами OLE Automation. Но там своя, довольно простая, впрочем, и потому не вполне удобная структура классов поверх этого низкоуровневого безобразия. Было бы что-то вроде:
{ OLE ole; WordApp appWord; Property docWd = appWord.GetObj(L"Documents"); Property doc = docWd.Call(L"Open", L"...")); doc.GetObj(L"PageSetup").SetVal(L"DifferentFirstPageHeaderFooter", -1); // True Property(Property(doc.GetObj(L"Sections").Call(L"Item", 1)).GetObj(L"Footers").Call(L"Item", 2)) // wdHeaderFooterFirstPage .GetObj(L"Range").Call(L"InsertBefore", L"Written by Kate Edson"); doc.Call(L"Save"); doc.Call(L"Close"); } А на MFC я Офисные классы не програмил. Если никто ничего дельного не предложит, могу предложить посмотреть сюда. Оттуда, вроде, для быстрого старта всё можно найти. |
Сообщ.
#5
,
|
|
|
Нашел вот такой пример:
_ApplicationPtr word; HeadersFooters m_foo; m_foo = word->ActiveDocument->Sections->Item(1)->GetFooters()->Item(wsHeaderFooterPrimary); CString m_footer = m_foo->GetRange()->GetTables()->Item(1)->Cell(1,1)->FitText; в дебагере видно, что получаем m_foo, но после этого сразу открывается окно с документом и строка получения значения колотитула просто перескакивается. Не понятно... |