Что нового

[Элементы GUI] Каким образом можно определить активность пункта меню

pnz

Новичок
Сообщения
6
Репутация
0
Доброго времени суток!
Сразу к делу. Не смог найти способа, с помощью которого можно было бы узнать, активен ли пункт меню.
Прикрепил пример с пунктами меню, где пункт меню "новая смена" не активен. Интересует способ как можно определить, что он не активен.
Надеюсь на понимание.
 

Вложения

  • activity menu.png
    activity menu.png
    981 байт · Просмотры: 9
Автор
P

pnz

Новичок
Сообщения
6
Репутация
0
InnI сказал(а):

Спасибо за ответ. Делаю как в примере
Код:
$hMenu = _SendMessage(WinGetHandle("Название главного окна программы"), 0x01E1, 0, 0) ;MN_GETHMENU
$res =  _GUICtrlMenu_GetItemCount($hMenu)
MsgBox(4096, 'Сообщение', $res)


Выводится -1
Посмотрел, что переменная hMenu = 0
Подскажите пожалуйста, что я не так сделал.
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
pnz
Делаю как в примере
В примере сделано совсем не так. Окно контекстного меню имеет специальный класс #32768. И только так его нужно искать
Код:
WinGetHandle("[class:#32768]")
Причём это окно не может быть активным, а попытка активации приводит к его закрытию.

Если же вы имеете в виду подменю, открываемое кликом по пункту главного меню, то с ним лучше работать через главное меню окна. Пример можете посмотреть в справке, например к функции _GUICtrlMenu_GetItemCount().
 
Верх