Меню Windows: флаг MF_HILITE не очищается - PullRequest
0 голосов
/ 01 декабря 2010

У меня есть экземпляр CMenu, в который я добавляю несколько элементов.Для одного из элементов, которые я добавил в него, я установил флаг MF_HILITE.

Когда я показываю меню, соответствующий пункт подсвечивается правильно, как и было запрошено.Проблема в том, что он остается зажженным, пока я не наведу на него мышь и не уйду.Я хочу, чтобы в то время был только один предмет.Похоже, что Windows не выключает его, когда другой элемент подсвечивается.

Как я могу заставить его не светиться, как только другой предмет получит свет?Я не смог найти какой-либо указатель мыши или сообщение для меню, и я также не смог найти недействительный.

Ответы [ 2 ]

0 голосов
/ 03 декабря 2010

Это не представляется возможным.

Невозможно установить внутреннее состояние для выбранного в данный момент пункта меню.Использование MF_HILITE или HiliteMenuItem не устанавливает текущий выбранный элемент, оно только устанавливает визуальный стиль.

В качестве обходного пути я использовал вместо этого всплывающее окно ListBox, в котором есть всефункции, которые мне нужны.

0 голосов
/ 01 декабря 2010

Вы используете MF_HILITE странным образом. Элемент на самом деле не выделен, он просто нарисован как есть. Если пользователь нажимает ввод, «выделенный» элемент не будет выбран.

Вы, наверное, ищете MF_DEFAULT.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...