SDI+Doc/View и Grid control
От: AGo Россия  
Дата: 02.07.03 05:18
Оценка:
Имею SDI+Doc/View и Grid control(в данном случае IGUltraGrid2.0.ocx), помогите:
Как прикрутить такой контрол
1. без создания кучи классов.
2. C возможностью получения из него CWnd;
Пытался использовать #import "c:\...\IGUltraGrid2.ocx"
— при компиляции выдает 89 ошибок. Видимо, настройки неправильные. При попытке использовать класс этого контрола в RUNTIME_CLASS,

if (!m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CLeftView), CSize(100,  100), pContext) ||
        !m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CIgUltraGridControl), CSize(100, 100), pContext))
    {
        m_wndSplitter.DestroyWindow();
        return FALSE;
    }

    return TRUE;


соответственно, компилятор, говорит — это не есть пространство имен или класс. Пожалуйста, Помогите.
Re: SDI+Doc/View и Grid control
От: Denwer Россия  
Дата: 02.07.03 05:31
Оценка:
Здравствуйте, AGo, Вы писали:

AGo>Имею SDI+Doc/View и Grid control(в данном случае IGUltraGrid2.0.ocx), помогите:

AGo>Как прикрутить такой контрол
AGo> 1. без создания кучи классов.
AGo> 2. C возможностью получения из него CWnd;
AGo>Пытался использовать #import "c:\...\IGUltraGrid2.ocx"
AGo>- при компиляции выдает 89 ошибок. Видимо, настройки неправильные. При попытке использовать класс этого контрола в RUNTIME_CLASS,

AGo>
AGo>if (!m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CLeftView), CSize(100,  100), pContext) ||
AGo>        !m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CIgUltraGridControl), CSize(100, 100), pContext))
AGo>    {
AGo>        m_wndSplitter.DestroyWindow();
AGo>        return FALSE;
AGo>    }

AGo>    return TRUE;
AGo>


AGo> соответственно, компилятор, говорит — это не есть пространство имен или класс. Пожалуйста, Помогите.


ActiveX лучше добавлять к проекту через меню(если у тебя студия 7 то это Project->Add Class->MFC->MFC class from ActiveX) и тогда к твоему проекту добавятся классы для пользования этим элементом. Кстати производные от CWnd(если мне память не изменяет). А их то уж проще пареной репы заюзать.

ЗЫ: А если у тя студия 6 то что то вроде этого Project->Add to project->....(дальше не помню)

Удачи.
Re[2]: SDI+Doc/View и Grid control
От: Denwer Россия  
Дата: 02.07.03 05:34
Оценка:
Здравствуйте, AGo, Вы писали:

AGo>>Пытался использовать #import "c:\...\IGUltraGrid2.ocx"


А вот еще что, если ты используешь импорт без параметров, то твой класс будет в пространстве имен, и так просто к нему не добраться. Может по этому у тебя не получилось.

Как лечить:
1) no_namespace(у дерективы импорта)
2) using namespace ........
Re: SDI+Doc/View и Grid control
От: Cordell Россия  
Дата: 02.07.03 05:43
Оценка:
Здравствуйте, AGo

Значится так. Сандартный ход при работе с ActiveX в MFC — генерация враппера. Делатеся это следующим образом: Если VC6, то говоришь Project/Add To Project/Componetn and controls/Register components, выбираешь свой излюбленный контрол, корректируешь, ксли надо там имена файлов, и получаешь два файла — .сpp и .h. Которые содержат класик, производный от CWnd и покрывающий твой контрол. Далее раюотаешь с ним, как-будто это простой оконный клас. Вернее можешь так работать =)

Если это VC7, то тут нескольок сложнее.. Я знаб только путь, что делаешь олевый MFC Dialog based проект, в редакторе ресурсов кладешь на диалог свой OCX, потом делаешь Project/Add variable и далее как в VC6 случае. Потом просто добавляешь сгенеренные .cpp и .h в нужный тебе проект.

Всех благ. Артем.
Re[3]: SDI+Doc/View и Grid control
От: AGo Россия  
Дата: 02.07.03 06:00
Оценка:
Здравствуйте, Denwer, Вы писали:

D>Как лечить:

D>1) no_namespace(у дерективы импорта)
D>2) using namespace ........

Попробовал,
#import "D:\My Docs\Work\C++\Components\IGUltraGrid20.ocx" no_namespace
/* rename_namespace("Sheridan")
using namespace Sheridan;*/
Компилятор выдал тоже самое
Re[4]: Делай враппер и не парься (+)
От: Cordell Россия  
Дата: 02.07.03 06:30
Оценка:
Что толку что симпортируешь typelibrary OCX-а? Контейнер к нему лапами сбрался писать? Рез нет, знат все одно будешь юзать MFC-ую оболочку, которая будет тем же враппером. Посмотри на досуге CWnd::GetControlUnknown например, поймешь, что CWnd это не только класик, что к окну цепляестся =)


Всех благ. Артем.
Re[2]: SDI+Doc/View и Grid control
От: Аноним  
Дата: 02.07.03 06:52
Оценка:
Здравствуйте, Cordell, Вы писали:

О громное спасибо за ответ!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.