Несколько пунктов меню жирным шрифтом - PullRequest
2 голосов
/ 05 ноября 2008

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

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

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

РЕДАКТИРОВАТЬ: я должен также добавить, что эта статья утверждает, что флаг MFS_DEFAULT ничего не делает, кроме отображения пункта меню жирным шрифтом; тем не менее, я немного опасаюсь идти против «официальной» документации ...

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

1 Ответ

4 голосов
/ 05 ноября 2008

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

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

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

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

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

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