Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обработка собщений контролов, вне клана родителя 
V
    Опции темы
vinter
Дата 24.6.2008, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

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



Здравствуйте,

У меня есть класс в конструкторе которого передается указатель на окно, в этом классе создаются все необходимые контролы. Вопрос: как мне обработать события от контролов созданных, не в классе окна?
т.е как мне можно загнать инфу о моих контролах в message_map?


--------------------
Мой блог
PM MAIL WWW   Вверх
Earnest
Дата 25.6.2008, 08:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

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



Если я правильно поняла.
Переопредели функцию OnCmdMsg родительского окна; вызови сначала OnCmdMsg твоего объекта - он, естественно, должен быть доступен в окне. Тогда все сообщения WM_COMMAND, WM_NOTIFY и апдейты можно будет поместить в message-map твоего класса - он должен быть наследником как минимум CmdTarget.


--------------------
...
PM   Вверх
vinter
Дата 25.6.2008, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

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



Earnest, он не является наследником ни одного из виндовых классов, это просто класс в котором инкопсулируется создание контролов. Причем мне надо обработать сообщения от контролов в этом классе, а все остальны сообщения окна(меню например) в основном. Можно ли допустим написать метод этого класса, а потом его вызвать в карте сообщений окна родителя? 


--------------------
Мой блог
PM MAIL WWW   Вверх
Earnest
Дата 26.6.2008, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

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



Так сделай его наследником, если хочешь обрабатывать в нем сообщения!
Как минимум CCmdTarget.
Или забудь про карты сообщений и пиши всю эту лабуду сам, руками...

Цитата(vinter @  25.6.2008,  10:49 Найти цитируемый пост)
Можно ли допустим написать метод этого класса, а потом его вызвать в карте сообщений окна родителя?  

НЕТ. Можно написать в окне обработчик, из которого вызвать метод твоего класса. И так 20 раз - сколько там у тебя контролов * на различные уведомления от них?
А сделав класс CCmdTarget, ты спокойно в его карте обрабатываешь все, что тебе нужно (но только уведомления!), а окно обрабатывает все остальное.



--------------------
...
PM   Вверх
vinter
Дата 26.6.2008, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

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



Earnest, спасибо за обьяснение


--------------------
Мой блог
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




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


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

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