Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.09.2009, 12:00   #1
miatu
Пользователь
 
Регистрация: 26.08.2009
Сообщений: 22
По умолчанию Проблема с section break

Создаю три колонки. Вывожу текст. Делаю section break. После этого хочу, чтобы следующая секция состояла из 1 колонки.

document->GetSections()->GetLast()->GetPageSetup()->GetTextColumns()->SetCount(3);
document->Paragraphs->Last->Range->PutText(L"ываываыва");
document->Paragraphs->Last->Range->InsertBreak(&sectionBreak);
document->Sections->Last->PageSetup->TextColumns->SetCount(1);
document->Paragraphs->Add();
document->Paragraphs->Last->GetRange()->PutText(L"privet");

Но получается так, что для первого выведенного текста создается 1 колонка.
miatu вне форума Ответить с цитированием
Старый 04.09.2009, 13:28   #2
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

А почему в первом случае, ты задаешь три колонки для всего документа, а затем для отдельного раздела? Даже если ты не создавал раздел, то он существует под номером 1. Подумай над этим.
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 04.09.2009, 16:41   #3
miatu
Пользователь
 
Регистрация: 26.08.2009
Сообщений: 22
По умолчанию

GetLast() по-умолчанию возвращает первую секцию. я ставлю ей 3 колонки. потом добавляю еще одну. GetLast() вернет вторую секцию и ставлю ей 1 колонку.

Раньше делал через selection. Все получалось нормально. Просто выяснилось, что объект selection не подходит(при выводе дрожит каретка во всех открытых документах).

Через selection код выглядел так:
Word::SectionsPtr sections = m_Selection->GetSections();
if (sections == NULL)
return false;

Word::SectionPtr section = sections->GetLast();
if (section == NULL)
return false;

section->GetPageSetup()->GetTextColumns()->SetCount(...);
miatu вне форума Ответить с цитированием
Старый 04.09.2009, 17:09   #4
miatu
Пользователь
 
Регистрация: 26.08.2009
Сообщений: 22
По умолчанию

А задача заключается в следующем:
1. Ставлю количество колонок.
2. Вывожу параграфы в эти колонки.
3. После окончания каждой колонки(кроме последней) ставлю column break.
4. После последней колонки ставлю section break.
5. Потом снова ставлю необходимое количество колонок и так по кругу.
6. Перехожу на следующую страницу.

Все это реализовал. Только к сожалению не через нужный объект (selection). Теперь переделываю все на range
miatu вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с рамами/Проблема с ЖД DRAGGER Компьютерное железо 6 04.01.2009 23:37
Проблема с break TheWanderer Общие вопросы C/C++ 2 23.11.2008 15:36
Проблема с операторами switch и break htonasral Общие вопросы C/C++ 2 23.09.2008 10:54