| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Visual C++/MFC/WTL > Доступ к члену переменной др. класса. |
| Автор: Edik 13.6.2007, 04:59 | ||||
У меня в программе на МФС есть два класса диалоговых окон CDlg1 и CDlg2. Так вот в классе CDlg1 есть переменная int Size, причем из этого класса вызываеться диалоговое окно класса CDlg2, второй диалог, модальный, а первый диалог не закрываеться. И мне в диалоговое окно этого класса CDlg2 надо вывести в его Edit переменную int Size из предыдущего класса, из которого вызвано это окно CDlg2. Как это сделать? Надо наверно копирующий конструктор в классе CDlg1 создать. Или как? Потому что просто так вот во втором классе CDlg2
ничего не выходит. Предположим я в классе CDlg1 реализовал фунцию его, этого класса, которая возвращает указатель на переменную из него Size. Когда вызываю эту функцию во втором классе CDlg2
пишет компилятор, что "неправильный вызов не статической фунции, смотри объявление GetSize()". Что за чертовня. Ну замучено! Капец. Кто знает подскажите. |
| Автор: Greeen 13.6.2007, 06:38 | ||||
Объявляешь в классе CDlg1 переменную int size (для простоты примера public). Далее когда нужно отобразить второй диалог:
В классе CDlg2 чтобы обратиться к этой переменной
Не забываем в Dlg1.h подключить Dlg2.h и наоборот. Удачи!! *** Все же рекомендую язык подучить |
| Автор: Edik 14.6.2007, 12:58 | ||||
| Я попробывал делать так, все равно ничего не вышло. Первый способ, выдает ошибку во время исполнения:
И второй способ, тоже не вышло, выдает что ->intSize не член CWnd:
Второй способ я взял из твоего примера из предыдущего поста. |
| Автор: zkv 14.6.2007, 14:45 | ||
| Edik, а в классе CEnglishDlg ты завел член intSize? Видимо нет. вру, невнимательно прочитал, этот код должен давать другую ошибку (типа udefined symbol reinterpert_cast), покажи свой код, который у тебя и вообще
дельный совет |
| Автор: Edik 14.6.2007, 15:31 | ||
О! Получилось! Пацаны, спасибо всем. Но извините, я только начал изучать С++, поэтому и залез на форум. А книги бумажные очень поверхностные (читаю щас две). А MSDN я тоже поверхностно понимаю, так как в энгише не очень шарю, хотя на 80% MSDN я понимаю. Но все равно, я пока еще начинающий, так что не обижайтесь. Вот правильный код.
Я не знал про GetParent();. Немного еще с классами CWnd путаюсь, как что к чему приводить. Спасибо, вы мне открыли новое поле для понимания! |
| Автор: Greeen 14.6.2007, 18:41 |
| Да всегда пожалста |