![]() |
|
|
![]()
|
|
| RastaDja |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 337 Регистрация: 1.11.2010 Репутация: нет Всего: 5 |
Доброго времени суток!
Есть окно типа Explorer. В нем два контрола дерево и окошко вывода. Сообщения от дерева ловлю в классе окна дерева CTreeView
В правом окне рисую с помощю
Как мне связать эти окна? (Тоесть как я могу получить данные из дерева и передать их в другой класс. Думал завести глобальные переменные, но где их обьявить? Или может как-то правильно ловить сообщения) Спассибо. -------------------- The more closely you look at one thing, the less closely can you see something else. |
||||
|
|||||
| RastaDja |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 337 Регистрация: 1.11.2010 Репутация: нет Всего: 5 |
Так никто и не ответил...
Пришлось бить в бубен самому: 1. В CMyDoc сделал следующее:
2. В CTreeView классе надо поймать сообщение юзания нужного пункта в дереве (как я это делал написано выше - в вопросе), и сделать обновление для всех контролов (можно и не для всех (а только для нужного вам), но для всех проще), предварительно передав параметр
3. Последний шаг. В CMyView обработаем сообщение OnUpdate.
Собственно так. Но вот хочу спросить. Есть ли какой-то попроще способ, чтоб не передавать через параметры, ведь если этих параметров будет много, то не очень хочется возится с большим числом переменных или масивами. Спасибо! Это сообщение отредактировал(а) RastaDja - 23.3.2011, 15:58 -------------------- The more closely you look at one thing, the less closely can you see something else. |
||||||
|
|||||||
| Albor |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 589 Регистрация: 28.2.2009 Репутация: 7 Всего: 9 |
Сообщение от дерева можно ловить и в документе и во фрейме. Определи в документе (а не в виде) обработчик и получай данные сразу в документ.
|
|||
|
||||
| RastaDja |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 337 Регистрация: 1.11.2010 Репутация: нет Всего: 5 |
Подскажите как это сделать (в MFC раньше не работал) -------------------- The more closely you look at one thing, the less closely can you see something else. |
|||
|
||||
| Albor |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 589 Регистрация: 28.2.2009 Репутация: 7 Всего: 9 |
Посмотри как данный обработчик прописался в класс CLeftView. В хеадере есть строка, начинается с afx и заканчивается именем функции обработчика, в срр- файле должна быть запись в карте сообщений (BEGIN_MESSAGE_MAP...END_MESSAGE_MAP()) и определение функции. Обработчик из CLeftView удали. |
|||
|
||||
| RastaDja |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 337 Регистрация: 1.11.2010 Репутация: нет Всего: 5 |
Спасибо. Разобрался.
разница в том, что сообщение другое надо ловить.
где AFX_IDW_PANE_FIRST - это наше дерево (константа для этого типа приложения). -------------------- The more closely you look at one thing, the less closely can you see something else. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |