![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| trix |
|
|||
![]() Observer Grabus ![]() ![]() Профиль Группа: Участник Сообщений: 534 Регистрация: 30.1.2003 Где: Odessa Репутация: 2 Всего: 12 |
у меня есть на тулбаре кнопка, к которой я приделал стрелочку и выпадающее меню. меню выскакивает, итемы нажимабтся и выполняются. но мне надо иногда некоторые из итемов сделать disabled. я в toolbardropdown перед trackpopupmenu, делаю menu->EnableMenuItem(ID_POPMENU1, MF_BYCOMMAND|MF_DISABLED|MF_GRAY); помойму так. и ничего не работает. подскажите пожалуйста как энто правильно делать.
-------------------- Тупое, бездушное SMS никогда, слышите вы? никогда не заменит живое общение по ICQ! |
|||
|
||||
| Олег М |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 436 Регистрация: 10.6.2004 Где: Москва Репутация: 7 Всего: 7 |
Я вот так делал
|
|||
|
||||
| trix |
|
|||
![]() Observer Grabus ![]() ![]() Профиль Группа: Участник Сообщений: 534 Регистрация: 30.1.2003 Где: Odessa Репутация: 2 Всего: 12 |
ну это апи функция, я тож так пробовал, ничего!
-------------------- Тупое, бездушное SMS никогда, слышите вы? никогда не заменит живое общение по ICQ! |
|||
|
||||
| Олег М |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 436 Регистрация: 10.6.2004 Где: Москва Репутация: 7 Всего: 7 |
Где-где ты это делаешь? Покаж код, где создаёшь меню |
|||
|
||||
| CaptainFlint |
|
|||
|
Искатель сокровищ ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 26.2.2003 Где: Москва Репутация: нет Всего: 23 |
trix
Я тоже столкнулся с этой проблемой. Правда, у меня надо было дизейблить пункт обычного меню, но, думаю, ситуация та же. Почему-то MFC при наличии обработчика данной команды всегда энейблит пункт меню, независимо от того, установлен атрибут GREY или нет. Есть два пути: 1. Обработать ON_COMMAND_UI, где и сделать нужную обработку по установке дизейбла. 2. Создать новый идентификатор с именем, пусть, ID_MYCOMMAND_GREY, где ID_MYCOMMAND - идентификатор команды нужного тебе пункта меню. Для него определяем также строку в ресурсах, такую же, как и для ID_MYCOMMAND, чтобы в строке состояния выводился нужный текст, и теперь, когда надо дизейблить, просто меняем идентификатор команды пункта меню на ID_MYCOMMAND_GREY, а когда надо обратно энейблить - на ID_MYCOMMAND. Я в своей программе реализовал именно второй способ, потому что, когда реализовывал, ничего не знал о первом. Так что выбирай, что тебе проще и удобнее. Второй способ работает точно, первый - наверное, сам не проверял. -------------------- Почему же, ё-моё, ты нигде не пишешь "ё"? -------------------- Для тех, кто не знает: CaptainFlint - это бывший Константин. ;) |
|||
|
||||
| Олег М |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 436 Регистрация: 10.6.2004 Где: Москва Репутация: 7 Всего: 7 |
Кстати да, trix, это надо в ON_UPDATE_COMMAND_UI делать. Когда ты просто вызываешь EnableMenuItem - она отрабатывает нормально, а потом МФЦ снова делает менюшку енаблед, согласно каким-то своим критериям, по-моему, если есть обработчик.
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |