Di-Meter

Функции COM интерфейса Word на VisualC++

18.06.2013, 12:10. Показов 1833. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, кто нибудь подскажет как используя функции вордовского COM интерфеса, добавить в документ Word листы или выбрать из существующих.У меня имеется следующий код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
void CWordPasteDlg::OnButtonWordPaste() 
{
    // TODO: Add your control notification handler code here
    ::CoInitialize(NULL);
    try
    {
        using namespace Word;
        _ApplicationPtr word(L"Word.Application");
        word->Visible=TRUE;
        word->Activate();
 
        //создаем новый документ
        _DocumentPtr wdoc1=word->Documents->Add();  
        //Рисуем прамоугольник
        //ShapePtr rect;
        //rect=wdoc1->Shapes->AddShape(75,20,5,185,287);
        //rect->Line->Weight=3;
        //rect->Line->ForeColor->RGB=RGB(123,54,45);
 
    
        //добавляем стлбец слов
        CString str;
        SelectionPtr mySelection=word->Selection;
        for(int i=0;i<180;i++)
        {
            str.Format("Число с полавающей точкой равно %f\n",0.2*i);
            mySelection->Text=str.GetBuffer(str.GetLength());
            mySelection->MoveDown(&_variant_t(long(wdParagraph)),&_variant_t(long(1)));
        }
 
        //выбираем лист номер 1
        PanePtr myPane=wdoc1->ActiveWindow->Panes->Item(1);
        PagePtr myPage=myPane->Pages->Item(1);
 
        //Рисуем линии
        ShapePtr myShape;
    
        myShape=wdoc1->Shapes->AddLine(word->MillimetersToPoints(20),word->MillimetersToPoints(5),word->MillimetersToPoints(20),word->MillimetersToPoints(292));
        myShape->Line->ForeColor->RGB=RGB(34,67,98);
        myShape->Line->Weight=2;
 
        myShape=wdoc1->Shapes->AddLine(word->MillimetersToPoints(20),word->MillimetersToPoints(292),word->MillimetersToPoints(205),word->MillimetersToPoints(292));
        myShape->Line->ForeColor->RGB=RGB(34,67,98);
        myShape->Line->Weight=2;
 
        myShape=wdoc1->Shapes->AddLine(word->MillimetersToPoints(205),word->MillimetersToPoints(292),word->MillimetersToPoints(205),word->MillimetersToPoints(5));
        myShape->Line->ForeColor->RGB=RGB(34,67,98);
        myShape->Line->Weight=2;
 
        myShape=wdoc1->Shapes->AddLine(word->MillimetersToPoints(205),word->MillimetersToPoints(5),word->MillimetersToPoints(20),word->MillimetersToPoints(5));
        myShape->Line->ForeColor->RGB=RGB(34,67,98);
        myShape->Line->Weight=2;
 
    }
    catch(_com_error& er)
    {
        char buf[1024];
        sprintf(buf,"_com_error:\n"
            "Error        :%08lX\n"
            "ErrorMessage :%s\n"
            "Description  :%s\n"
            "Source       :%s\n",
            er.Error(),
            (LPCTSTR)_bstr_t(er.ErrorMessage()),
            (LPCTSTR)_bstr_t(er.Description()),
            (LPCTSTR)_bstr_t(er.Source()));
        CharToOem(buf,buf);
        printf(buf);
    }
    ::CoInitialize(NULL);
    
}
Он выводит текст на нескольких листах и на последнем рисует рамку, хотя рамки должны быть на всех листах документа.Кусок кода, с помощью которого я хотел выбрать первый лист
C++
1
2
3
//выбираем лист номер 1
        PanePtr myPane=wdoc1->ActiveWindow->Panes->Item(1);
        PagePtr myPage=myPane->Pages->Item(1);
похоже не работатет, подскажите что делать?
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.06.2013, 12:10
Ответы с готовыми решениями:

Создание интерфейса как в Word
Здравствуйте. Вот делаю лабу по Delphi. Суть лабы в том, чтобы создать интерфейс как в Word. И вот несколько вопросов: 1.Как...

Перевести в VisualC#
Dim g, r, Rah As Integer Dim p As Integer = TextBox1.Lines.Length() Dim mas() As String mas = TextBox1.Lines ...

VisualC++ компиляция
помогите пожалуйста я установил себе visual C++ 2010 exspress но никак не могу разобраться с ним, почему если я создаю новый файл (файл...

1
Модератор
 Аватар для vxg
3401 / 2172 / 353
Регистрация: 13.01.2012
Сообщений: 8,429
18.06.2013, 16:43
как вариант - сделайте тоже самое в VBA и поглядите где вы косячите - там легче разобраться чем в связке OLE
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.06.2013, 16:43
Помогаю со студенческими работами здесь

VisualC++ 2008: не отображает кирилицу
Что надо написать и где, чтобы по команде cout &lt;&lt; &quot; на экран выводилась кирилица&quot;?

Передача интерфейса в качестве параметра функции
Приветствую! Возник вопрос: уже имеется набор интерфейсов, которые определяют и реализуют функционал некоторых &quot;функциональных...

Отделение интерфейса __forceinline функции от реализации
Сабж. Как смочь? Вопрос актуален как для просто функций, так и для функций - членов классов. Хочется навести порядок в исходниках,...

Как удалить ветку Реестра в VisualC++7.0?
Как удалить ветку Реестра?

DLL и LIB в Delphi для VisualC++
Кто может детально объяснить как подготовить файлы DLL и LIB на Delphi6 для использования в VisualC++


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

Новые блоги и статьи
SwiftUI Data Flow: Передача данных между представлениями
mobDevWorks 23.03.2025
При первом знакомстве со SwiftUI кажется, что фреймворк предлагает избыточное количество механизмов для передачи данных: @State, @Binding, @StateObject, @ObservedObject, @EnvironmentObject и другие. . . .
Моки в Java: Сравниваем Mockito, EasyMock, JMockit
Javaican 23.03.2025
Как протестировать класс, который зависит от других сложных компонентов, таких как базы данных, веб-сервисы или другие классы, с которыми и так непросто работать в тестовом окружении? Для этого и. . .
Архитектурные паттерны микросервисов: ТОП-10 шаблонов
ArchitectMsa 22.03.2025
Популярность микросервисной архитектуры объясняется множеством важных преимуществ. К примеру, она позволяет командам разработчиков работать независимо друг от друга, используя различные технологии и. . .
Оптимизация рендеринга в Unity: Сортировка миллиона спрайтов
GameUnited 22.03.2025
Помните, когда наличие сотни спрайтов в игре приводило к существенному падению производительности? Время таких ограничений уходит в прошлое. Сегодня геймдев сталкивается с задачами совершенно иного. . .
Образование и практика
Igor3D 21.03.2025
Добрый день А вот каково качество/ эффективность ВУЗовского образования? Аналитическая геометрия изучается в первом семестре и считается довольно легким курсом, что вполне справедливо. Ну хорошо,. . .
Lazarus. Таблица с объединением ячеек.
Massaraksh7 21.03.2025
Понадобилась представление на экране таблицы с объединёнными ячейками. И не одной, а штук триста, и все разные. На Delphi я использовал для этих целей TStringGrid, и то, кривовато получалось. А в. . .
Async/await в Swift: Асинхронное программировани­е в iOS
mobDevWorks 20.03.2025
Асинхронное программирование долго было одной из самых сложных задач для разработчиков iOS. В течение многих лет мы сражались с замыканиями, диспетчеризацией очередей и обратными вызовами, чтобы. . .
Колмогоровская сложность: Приёмы упрощения кода
ArchitectMsa 20.03.2025
Наверное, каждый программист хотя бы раз сталкивался с кодом, который напоминает запутанный лабиринт — чем дальше в него погружаешься, тем сложнее найти выход. И когда мы говорим о сложности кода, мы. . .
PostgreSQL в Kubernetes: Подготовка кластера и настройка
Mr. Docker 20.03.2025
Когда доходит до контейнеризации баз данных и особенно таких требовательных к ресурсам системах как PostgreSQL, многие команды до сих пор колеблются, прежде чем перенести их в контейнерную. . .
C++26: Индексирование пакетов и метапрограммиро­вание
bytestream 20.03.2025
Эволюция C++ продолжается стремительными темпами – каждый новый стандарт приносит функциональность, о которой мы мечтали годами. Звучит слишком громко? Если вы когда-либо боролись с вариадическими. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru