Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

ON_UPDATE_COMMAND_UI мать его...

10K
24 августа 2006 года
Sonic_amiga
34 / / 19.06.2006
Имеем аппликуху со следующим интерфейсом:
 
Код:
+-----+----------------------+
|     |                      |
|     |                      |
|  1  |            3         |
|     |                      |
|     |                      |
+-----+----------------------+
|                 2          |
|                            |
+----------------------------+

Области 1 и 2 - пристыкованные CControlBar'ы, область 3 - MDI-клиент. Вверху этой аппликухи имеем тулбар и меню. В меню (и на тулбаре) есть функции, относящиеся к (1), равно как и относящиеся к (2). Соответственно обработчики ON_WM_COMMAND и ON_UPDATE_COMMAND_UI расположены в соответствующих классах.
В результате получаем следующий противный эффект: активны только те кнопки и пункты, которые относятся к "активному" CControlBar'у (т. е. тому, который последним получал фокус. При щелчках на областях все это дело переключается.
Как просто и эффективно сделать так, чтобы этого не было? Я пробовал переносить записи MessageMap'а в класс основного фрейма, а ссылаться на функции в классах (для чего объявил класс фрейма для них другом). В результате получил страшенную байду с указателями this в этих функциях (которые указывали черт-те-куда), и забросил это дело. Мучился три часа, пытаясь понять, как вся эта хрень изнутри работает и где в MFC происходит запрет/разрешение команд по умолчанию. Не понял нифига. По идее мне нужно перехватить то место, где происходит запрет команд, которые не отрабатываются активным окном,и вместо этого вызвать что-то, что вызовет мою цепочку ON_UPDATE_COMMAND_UI для класса того окна, которое сейчас неактивно. А как блин???
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог