|
|
|
Перехватить чужое сообщение имея адрес его обладателя...
|
|||
|---|---|---|---|
|
#18+
Заранее прошу прощение за глупый вопрос, но в имеющейся литературе с наскока ответа не нашел. Подскажите, плз, как в VC++6 в одном классе (А) создать обработчик на событие, возникающее в другом классе (B). При этом не внося изменений в класс В. Иными словами, нужен аналог Борландовского], грубо говоря [SRC c++]B.OnMouseMove = A.MyProc[/SRC Есть возможность завести поле в классе A для хранения адреса экземпляра класса B, но что это дает и как завернуть его события на свой обработчик? Есть у наследников CCmdTarget обработчик OnCmdMsg. Может ли он как-то мне помочь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2005, 18:25 |
|
||
|
Перехватить чужое сообщение имея адрес его обладателя...
|
|||
|---|---|---|---|
|
#18+
Если у класса B не предусмотрена возможность вызывать внешнюю функцию, то единственный способ, это сделать наследника от класса B, в котором переопределить все нужные тебе методы. И там уже обрабатывать, если кто-то снаружи определил внешнюю процедуру то запустить ее, иначе запустить перекрытый метод из родительского класса. А в своей программе уже не используешь класс В совсем, а только своего наследника от В. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2005, 18:30 |
|
||
|
Перехватить чужое сообщение имея адрес его обладателя...
|
|||
|---|---|---|---|
|
#18+
Понял, что халявы не будет.... Сделать класс A наследником класса B в моем случае плохая идея, т.к. класс В очень громоздкий, а класс А наоборот нужен для очень небольшого набора функций, но должен реагировать на события класса В (движения мыши, перерисовка, нажатия клавиш и т.д.). И боюсь, что такой класс как класс А не последний. Соответсвенно каким-то образом надо будет в классе В организовать счетчик ссылок для учета подключенных классов типа А, чтобы при возникновении некого события (например, щелчок мыши), разослать его каждому подключенному классу. Правильно я понимаю? А что значит - у класса может быть предусмотрена возможность вызова внешней функции? Что Вы имели в виду? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2005, 19:22 |
|
||
|
Перехватить чужое сообщение имея адрес его обладателя...
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. Ну примерно так, плюс-минус километр :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2005, 21:34 |
|
||
|
Перехватить чужое сообщение имея адрес его обладателя...
|
|||
|---|---|---|---|
|
#18+
Subclassing ... А вообще -- странного ты чего -то хочешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2005, 23:40 |
|
||
|
|

start [/forum/topic.php?fid=57&gotonew=1&tid=2032555]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
11ms |
get first new msg: |
7ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 358ms |

| 0 / 0 |
