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

Ваш аккаунт

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

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

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

Недоступность меню

4.9K
11 апреля 2005 года
CyberMan
55 / / 25.01.2005
Как сделать меню недоступным для пользователя на период выполнения потока. Если подробнее в программе при выборе пользователя определенного пункта меню запускается поток. Если меню будет доступно то при повторном выборе того же пункта опять запустится поток чего делать не нужно но засеривать меню нельзя я хотел сделать недоступным все пункты.
425
11 апреля 2005 года
sq_deep
498 / / 18.02.2005
Если пользуетесь MFC, засеривайте и рассеривайте все пункты меню одной макрокомандой ON_UPDATE_COMMAND_UI_RANGE.

Если нет, тогда не знаю.
6.6K
12 апреля 2005 года
hunter
46 / / 22.09.2004
Цитата:
Originally posted by CyberMan
Как сделать меню недоступным для пользователя на период выполнения потока. Если подробнее в программе при выборе пользователя определенного пункта меню запускается поток. Если меню будет доступно то при повторном выборе того же пункта опять запустится поток чего делать не нужно но засеривать меню нельзя я хотел сделать недоступным все пункты.



Нет на самом деле все проще чем ты думаешь. Я недавно столкнулся с этой же проблемкой, помучился но решил (на WinApi). Вызываешь:
EnableMenuItem(HMENU- handle твоего меню,
ID - порядковый номер пункта меню
(если у него нет идентификатора в
ресурсах),
и наконец 3-й параметр =
MF_DISABLED|MF_GRAYED|MF_BYPOSITION)
да обрати внимание на MF_BYPOSITION, благодаря этому параметру ты можешь заблокировать всю ветку меню.
Соответственно если есть пункты меню Файл, База Данных, Помощь, определенные как Pop-Up, то засерить и запретить их можно:
EnableMenuItem(MENU,1, MF_DISABLED|MF_GRAYED|MF_BYPOSITION);
EnableMenuItem(MENU,2, MF_DISABLED|MF_GRAYED|MF_BYPOSITION);
EnableMenuItem(MENU,3, MF_DISABLED|MF_GRAYED|MF_BYPOSITION);
Надеюсь идею ты понял. Если чего пиши!

4.9K
13 апреля 2005 года
CyberMan
55 / / 25.01.2005
Цитата:
Originally posted by hunter

EnableMenuItem(HMENU- handle твоего меню,
ID - порядковый номер пункта меню
(если у него нет идентификатора в
ресурсах),
и наконец 3-й параметр =
MF_DISABLED|MF_GRAYED|MF_BYPOSITION)


Да спасибо так гораздо удобнее чем засервать каждый пункт по отдельности. Кстати в MFC в классе СMenu есть такой же метод только функция не содержит handl'а

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог