Несколько пунктов меню выделены жирным шрифтом
Вопрос
Я исследовал усилия, необходимые для того, чтобы элементы меню отображались жирным шрифтом - без необходимости самому рисовать меню - и обнаружил состояние элемента меню MFS_DEFAULT после некоторого поиска в Google.Тот самый Документация MSDN упоминания
MFS_DEFAULT
Указывает, что пункт меню используется по умолчанию.Меню может содержать только один пункт меню по умолчанию, который выделен жирным шрифтом.
Я экспериментировал, и это появляется это противоречит документации, похоже, что я могу использовать этот флаг для отображения нескольких (или, возможно, всех!) Пунктов меню жирным шрифтом.Есть ли у кого-нибудь какой-либо опыт работы с этим, т.е.есть ли какие-либо подводные камни в наличии нескольких выделенных жирным шрифтом пунктов меню?Это действительно похоже на небольшой взлом, чтобы добраться до того, чего я пытаюсь достичь, и я немного беспокоюсь о неизвестных побочных эффектах (т.Е.наличие нескольких пунктов меню "по умолчанию" в одном меню).
Редактировать:Я должен также добавить, что эта статья утверждает, что флаг MFS_DEFAULT ничего не делает, кроме отображения пункта меню жирным шрифтом;тем не менее, я немного опасаюсь идти вразрез с "официальной" документацией...
РЕДАКТИРОВАТЬ 2:Цель этого состояла в том, чтобы сообщить пользователю, что рассматриваемый пункт меню (т. е.тот, который выделен жирным шрифтом) также можно вызвать двойным щелчком по соответствующему элементу управления (пункт меню является частью контекстного меню).Когда я думал об этой проблеме, я не учел тот факт, что - обычно - только одна команда может быть связана с событием двойного щелчка (d'oh!).Таким образом, я принял ответ зафода (он не отвечает на этот вопрос напрямую, но он решил мою "проблему")
Решение
Чего вы пытаетесь достичь?
Я подозреваю, что самое большое возражение против использования MFS_DEFAULT для целей, отличных от той, для которой оно было предназначено, заключается в том, что вы нарушаете визуальное соглашение, которое Microsoft пытается распространить о том, что означают выделенные жирным шрифтом пункты меню и как пользователь (или вспомогательная программа, такая как программа чтения с экрана) должен реагировать, столкнувшись с ними.
Если все, что вы пытаетесь сделать, это привлечь внимание пользователя к нескольким пунктам меню, представляющим особый интерес, - что ж, это кажется немного странным, но в то же время довольно невинным, и я был бы удивлен, если бы это вызвало у вас огромные проблемы в будущем.Конечно, все возможно!И все же мне было бы интересно узнать, что именно ты задумал.
Если вы пытаетесь отобразить часть состояния вашей программы, выделяя жирным шрифтом и отменяя выделение пунктов меню - это кажется мне немного неожиданным, но я бы не хотел выносить суждение, не услышав подробностей.
Если у вас есть какая-то другая цель - например, возможно, вы считаете, что шрифт по умолчанию для меню уродливый, и вам больше нравится, когда все выделено жирным шрифтом, - тогда метод, который вы обнаружили, может оказаться целесообразным, но также может быть лучший способ получить именно то, что вы хотите, который мы могли бы обсудить более подробно (возможно, в отдельном вопросе), если вы пожелаете.Я сомневаюсь, что это так, но кто знает?