Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> пердача переменной 
:(
    Опции темы
Alex2
Дата 8.2.2005, 08:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 20.9.2004

Репутация: нет
Всего: нет



У меня не получается из класса "class CDirTreeCtrl : public CTreeCtrl" присвоить переменной
m класса "class CView1 : public CFormView" значение mstr:

Передача::
m_pView1->m =mstr;
m_pView1 определен в заголовочном файле CDirTreeCtrl:
CView1* m_pView1;


Это в файле реализации CView1:
CView1::CView1()
: CFormView(CView1::IDD)
{
m_pDirTreeCtrl = new CDirTreeCtrl;
m_pDirTreeCtrl->m_pView1=this;
здесь вроде this присваивается совсем другому, новому
объекту классаm_pDirTreeCtrl, но в примере было написано именно так
скажите я прав или нет и как тогда надо или как сохранить куда нибудь
this, чтобы использовать из другого класса для изменения переменной
...

m_pDirTreeCtrl определена в заголовочном файле CView1:

CDirTreeCtrl* m_pDirTreeCtrl;


При отладке когда вызывается m_pView1->m =mstr из события класса CDirTreeCtrl выдается:
+ m_pView1 0xcdcdcdcd {CView1 hWnd=???}

Далее вызывается эта функция, но любые изменения, связанные с объектами класса CView1 вызывают
ошибку: Unhandled Exception.

Как это исправить?

Использовал пример:
В класе диалога, у тебя в любом случае есть указатель или объект на листктрл, а вот
в наследуемом классе от лист ктрл надо объявить указатель на объект класса диалог, потом в диалоговом классе при инициализации диалога, но после инициализации контрола надо присвоить указателю указатель на диалоговый клас

выглядит это так

Код

class CSecond;
class CFirst
{
public:
CFirst();
sample(int a)
~CFirst();
...
CSecond* m_pSecond;
};
Файл реализации для первого класса:
#include "First.h"
#include "Second.h"
CFirst::CFirst()
{
m_pSecond = new CSecond;
m_pSecond->m_pFirst=this;

}
CFirst::~CFirst()
{
delete m_pSecond;
}
Заголовочный файл для второго класса:
class CFirst;
class CSecond
{
public:
CSecond();


...
CFirst* m_pFirst;
sample2(int a);
};
Файл реализации для второго класса:
#include "Second.h"
#include "First.h"
CSecond::CSecond()
{
...
}
CSecond::~CSecond()
{
...
CSecond::sample2(int a){
m_pFirst->sample(5)
}




В результате функция sample2 второго класа вызовет вункцию sample первого класа....

Это сообщение отредактировал(а) chipset - 10.2.2005, 03:37
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0407 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.