Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Teacher269
0 / 0 / 0
Регистрация: 25.12.2012
Сообщений: 12
#1

Как перехватывать и обрабатывать события в динамически созданных классах? - C++

05.02.2013, 15:07. Просмотров 329. Ответов 2
Метки нет (Все метки)

Приветствую!
Есть много разных классов и много динамически созданных экземпляров каждого из них. И вот в программе происходит какое-то событие (допустим клик мышью) и надо, чтобы всем экземплярам всех классов отправилось сообщение, несущее x,y клика, а те перехватили его и обработали.
Как такую задачу корректней реализовать? Есть ли в c++ какой-нибудь готовый механизм, или придется вручную писать что-то типа такого:
C++
1
2
3
4
5
6
7
void sendMessageClick(int x, inty){
int i;
for(i=0;i<n1;i++){myclass1[i].myfunction1(x,y);}
for(i=0;i<n2;i++){myclass2[i].myfunction2(x,y);}
...
for(i=0;i<nn;i++){myclassN[i].myfunctionN(x,y);}
}
Заранее благодарен.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.02.2013, 15:07     Как перехватывать и обрабатывать события в динамически созданных классах?
Посмотрите здесь:

Как перехватывать события JavaScript при работе Internet Explorer (на С++) - C++
Помогите !!!

Запись динамически созданных объектов в файл - C++
Всем привет. Хочу спросить, пока не наделал глупостей. Есть два класса. //первый класс, родитель class someObj { ...

Освобождение памяти динамически созданных объектов - C++
Подскажите, есть к примеру три класса: Class1, Class2, Class3. В Class2 имеется метод, в котором динамически создаю объекты класса...

Семафоры для динамически созданных потоков - C++
Помогите разобраться, я динамически создаю поток, который имеет общие переменные с головным потоком. Для избежания конфликтов использую,...

Как перехватывать запросы браузерного приложения? И как их потом отправлять самому? - C++
Есть некая простенькая, никем не защищённая браузерка. К примеру, какая-нибудь рыбалка из ВК. Обычная рыбалка. Когда мы кидаем удочку...

Как обрабатывать данные в функции на С++ - C++
Добрый вечер всем. Очень нужна помощь. Я очень поверхностно знаком с классами и функциями, соответственно, и код криво написал. Суть...

Как хранить и обрабатывать массив больших элементов - C++
Всем привет Есть некоторый буфер объёма 1 350 000 байт (значение конкретное в конкретном времени и месте, в принципе, возможно...

Как установить и обрабатывать HotKey из dll (из фильтра directshow) - C++
Надо сделать горячую клавишу из своей динамической библиотеки (фильтра directshow) где нет своих окон в плеер который её подгружает. давно...

Как обрабатывать посылаемые виндовс сообщения, в консольном приложении? - C++
С использованием библиотеки windows.h Нужно в консольном приложении обрабатывать сообщения, например, нажатия клавиши, и тд...

Как правильно обрабатывать исключения в приложении на базе графического движка? - C++
Я с исключениями работал только в консольных приложениях - там удобно реализовывался метод бросания интов, которые представляли собой код...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
05.02.2013, 15:21     Как перехватывать и обрабатывать события в динамически созданных классах? #2
в чистых плюсах разумеется такого нет, в надстройках вроде Qt можно обрабатывать события как душе угодно... конкретно для каждого класса по своему
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
05.02.2013, 17:04     Как перехватывать и обрабатывать события в динамически созданных классах? #3
создать абстрактный класс с методом
C++
1
virtual void visit(int x, int y) = 0;
унаследовать от него все заинтересованные классы
а потом в случае очередного события запускать только один цикл, а не несколько

Добавлено через 1 минуту
если событий много и передаваемые параметры разные, то можно сделать свой класс event и передавать его в метод visit
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru