Несколько пунктов меню выделены жирным шрифтом

StackOverflow https://stackoverflow.com/questions/264217

  •  06-07-2019
  •  | 
  •  

Вопрос

Я исследовал усилия, необходимые для того, чтобы элементы меню отображались жирным шрифтом - без необходимости самому рисовать меню - и обнаружил состояние элемента меню MFS_DEFAULT после некоторого поиска в Google.Тот самый Документация MSDN упоминания

MFS_DEFAULT
Указывает, что пункт меню используется по умолчанию.Меню может содержать только один пункт меню по умолчанию, который выделен жирным шрифтом.

Я экспериментировал, и это появляется это противоречит документации, похоже, что я могу использовать этот флаг для отображения нескольких (или, возможно, всех!) Пунктов меню жирным шрифтом.Есть ли у кого-нибудь какой-либо опыт работы с этим, т.е.есть ли какие-либо подводные камни в наличии нескольких выделенных жирным шрифтом пунктов меню?Это действительно похоже на небольшой взлом, чтобы добраться до того, чего я пытаюсь достичь, и я немного беспокоюсь о неизвестных побочных эффектах (т.Е.наличие нескольких пунктов меню "по умолчанию" в одном меню).

Редактировать:Я должен также добавить, что эта статья утверждает, что флаг MFS_DEFAULT ничего не делает, кроме отображения пункта меню жирным шрифтом;тем не менее, я немного опасаюсь идти вразрез с "официальной" документацией...

РЕДАКТИРОВАТЬ 2:Цель этого состояла в том, чтобы сообщить пользователю, что рассматриваемый пункт меню (т. е.тот, который выделен жирным шрифтом) также можно вызвать двойным щелчком по соответствующему элементу управления (пункт меню является частью контекстного меню).Когда я думал об этой проблеме, я не учел тот факт, что - обычно - только одна команда может быть связана с событием двойного щелчка (d'oh!).Таким образом, я принял ответ зафода (он не отвечает на этот вопрос напрямую, но он решил мою "проблему")

Это было полезно?

Решение

Чего вы пытаетесь достичь?

Я подозреваю, что самое большое возражение против использования MFS_DEFAULT для целей, отличных от той, для которой оно было предназначено, заключается в том, что вы нарушаете визуальное соглашение, которое Microsoft пытается распространить о том, что означают выделенные жирным шрифтом пункты меню и как пользователь (или вспомогательная программа, такая как программа чтения с экрана) должен реагировать, столкнувшись с ними.

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

Если вы пытаетесь отобразить часть состояния вашей программы, выделяя жирным шрифтом и отменяя выделение пунктов меню - это кажется мне немного неожиданным, но я бы не хотел выносить суждение, не услышав подробностей.

Если у вас есть какая-то другая цель - например, возможно, вы считаете, что шрифт по умолчанию для меню уродливый, и вам больше нравится, когда все выделено жирным шрифтом, - тогда метод, который вы обнаружили, может оказаться целесообразным, но также может быть лучший способ получить именно то, что вы хотите, который мы могли бы обсудить более подробно (возможно, в отдельном вопросе), если вы пожелаете.Я сомневаюсь, что это так, но кто знает?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top