![]() |
|
|
![]()
|
|
| Proletariy |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 19.2.2008 Репутация: нет Всего: нет |
Возникла необходимость организовать взаимодействие класса документа с немодальным диалогом. Ранее этого не делал. (Обходился модальными)
Создаю и вызываю немодальное окно.
Передавать данные в класс немодального окна у меня получается
Обратно - из немодального окна в класс документа - не получается. Не могу получить значение указателя на класс документа из класса диалога pDoc (типа как в CView GetDocument();) передать указатель через конструктор класса-диалога (при создании диалога) пробовал, но после этих изменений не получается вызвать немодальное окно. CMyDialog::CMyDialog(CWnd* pParent /*=NULL*/, CMyDoc* pDoc).... и т.д. Возможно есть способ для получения значения указателя на класс документа из любого произвольного класса для взаимодействия переменных этих классов. П.С. Приложение SDI З.Ы. Решил проблему. Все оказалось просто. Использовал this; Это сообщение отредактировал(а) Proletariy - 28.1.2009, 10:38 |
||||
|
|||||
| voov |
|
|||
![]() Патамушта мы пилоты ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 29.11.2007 Репутация: 8 Всего: 8 |
общего способа нет. в CView GetDocument(); работает потому, что у вида есть указатель на документ (можешь посмотреть реализацию GetDocument()). а если поменять параметры местами? параметры, которые имеют значение поумолчанию, должны быть последними. |
|||
|
||||
| Proletariy |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 19.2.2008 Репутация: нет Всего: нет |
voov Спасибо за ответ.
Решил вопрос так (оказалось очень все просто, а я вчера в дебри конкретные залез) В классе CMyDialog объявил CMyDoc *pDoc (public) и при создании немодального диалога передал указатель на класс документа
И из класса CMyDialog имею доступ к классу документа
|
||||
|
|||||
| voov |
|
|||
![]() Патамушта мы пилоты ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 29.11.2007 Репутация: 8 Всего: 8 |
Да, все правильно. Единственно, еще замечу, что лучше переменные-члены класса не делать публичными (я про pDoc->m_mainstring, dlg->pDoc). Лучше сделать их private или protected и сделать методы доступа get... и set...
Это сообщение отредактировал(а) voov - 28.1.2009, 12:35 |
|||
|
||||
| Proletariy |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 19.2.2008 Репутация: нет Всего: нет |
voov
Спасибо. Учту. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |