Вопрос про VS2005 и WindowForms

Компьютеры, программы, периферия, коммуникации, интернет, программирование и т.п. Ранее назывался Hard-n-Soft.
Сообщение
Автор
Danila
Благодарил (а): 7 раз
Поблагодарили: 19 раз

№ 0 Сообщение Danila » 26 май 2010 11:45

Есть некая группа расчетных методов, написанных на С++ и оформленных как пачка классов. Все реализовано в консольном приложении, все сообщения выводятся в консоль. Надумал я для проекта сделать нормальное визуальное оформление - "морду" так сказать. Вот есть у меня диалоговое окно, в нем там строка прогресса, какой-нибудь RichEdit, куда результаты расчета скидываются. Я чего-то никак не пойму, как из абсолютно "чужого" класса взаимодействовать с объектами класса этого окна. Т.е. я в обработчике какой-нибудь кнопки создаю экземпляр класса расчета, запускаю его, и он в процессе работы должен, например, обновлять прогресс бар.
Пробовал прописывать includ'ы, баловался с namespace'ами - никак не получается.

gn2

№ 1 Сообщение gn2 » 26 май 2010 18:49

Нужно от этого класса создать свой класс, и в него включить описание нужного класса. Далее в конструкторе передаешь ссылку на этот класс и через нее получаешь доступ к членам чужего класса если они public. Примерно так как ниже
//h
class MyClass:public MfCclass {
class OtherClass;
OrterClass* pOtherClass;
MyClass(OtherClass * p, ...);
};
//cpp
и в кострукторе
MyClass(OtherClass * p, ...):MfCclass(...)
{
pOtherClass=p;
}
далее везде ты используешь pOtherClass для доступа к членам нужного тебе класса.

gn2

№ 2 Сообщение gn2 » 26 май 2010 18:52

И в cpp не забудь включить #include "otherclass.h"

Danila
Благодарил (а): 7 раз
Поблагодарили: 19 раз

№ 3 Сообщение Danila » 26 май 2010 20:55

gn2 пишет:
> Нужно от этого класса создать свой класс, и в него включить описание нужного класса.
Из этого класса - это из класса, описывающего форму? Который в примере обозван как MfCclass?

gn2

№ 4 Сообщение gn2 » 27 май 2010 18:45

3: Danila:
Свой класс от того класса где тебе нужны данные чужого класса. Это может быть и класс, описывающий форму. Правда я в Builder C++ не программирую, а по терминологии (форма) мне кажется, что ты пишешь сейчас в Builder C++.

Danila
Благодарил (а): 7 раз
Поблагодарили: 19 раз

№ 5 Сообщение Danila » 27 май 2010 22:18

gn2 пишет:
> я в Builder C++ не программирую, а по терминологии (форма) мне кажется, что ты пишешь сейчас в Builder C++.
не-не-не-не, я в заголовке же написал что речь идет о Visual Studio 2005, проект создается в конструкторе с использованием WindowsForms, т.е. вовсю использует .NET Framework. Скорее всего это также применимо для MFC. А у borland'a я использовал только Delphi 7.0.

gn2

№ 6 Сообщение gn2 » 29 май 2010 06:28

5: Danila:
Мне кажется, что в твоем случае проще изменить твой класс расчета добавив в конструктор ссылку на CRichEditCtrl. В .h файл твоего класса добавить
class CRichEditCtrl;
CRichEditCtrl* pedit;
и в конструкторе получить указатель pedit как было написано выше.

Вернуться в «Компьютерный форум»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей