Ввожу текст в документ. Периодически меняю количество столбцов.
Затем формирую несколько текстовых блоков:
for (int i = 0; i < 5; ++i)
{
Word::ShapePtr textBox = m_WordDocument->Shapes->AddTextbox (Office::msoTextOrientationHorizontal, m_AppWord->CentimetersToPoints(5 + i*3), m_AppWord->CentimetersToPoints(5),
100,
100);
Word::TextFramePtr textFrame = textBox->GetTextFrame();
if (!textFrame)
return ;
Word::RangePtr textRange = textFrame->GetTextRange();
if (!textRange)
return ;
textRange->Select();
m_AppWord->GetSelection()->TypeText(L"param pam pam");
}
После этого каретка установлена в последнем текстовом боксе. Перевожу ее к основному тексту:
Word::SelectionPtr sel = m_AppWord->GetSelection();
sel->GoTo();
Здесь хочу сделать переход на новус страницу:
CComVariant variant(Word::wdSectionBreakNextPage);
m_AppWord->GetSelection()->InsertBreak(&variant);
Но каретка стоит в начале страницы. Если я выполню последние 2 строчки кода, выше введенный текст перепрыгнет на следующую страницу. Как перевести каретку в конец основного введенного текста?
Пробую методом selection-a MoveRight, но я точно не подсчитываю сколько чего я ввел. Что здесь можно сделать?
Пишу на плюсах, буду рад помощи на любом языке.
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
пробую:
после основного текста
Word::RangePtr range = m_AppWord->GetSelection()->GetRange();
... добавляю текстовые блоки ...
m_AppWord->GetSelection()->GoTo();
m_AppWord->GetSelection()->SetRange(range->GetStart(), range->GetEnd());
все нормально, но если основного текста нет - текстовые блоки перепрыгивают на след страницу.
Что здесь можно сделать?