Окт 16

Статус пунктов меню

Пункты меню могут быть разрешенными {enabled), запрещенными (disabled) и недоступными (grayed).
По умолчанию пункт меню является разрешенным. Когда пользователь выбирает такой пункт, система посылает сообщение WM_COMMAND или отображает соответствующее подменю, в зависимости от типа пункта.
Запрещенный и недоступный пункты с точки зрения поведения одинаковы. Их можно выделить, но нельзя выбрать. То есть и при щелчке мышью, и при нажатии клавиши Enter ничего не происходит. Различаются запрещенный и недоступный пункты только своим внешним видом. Запрещенный пункт выглядит так же, как разрешенный, а недоступный пункт отображается серым цветом. Если вы хотите, чтобы пользователь знал, что пункт меню «отменен», делайте его недоступным.
В хорошо продуманном интерфейсе пользователя приложение должно управлять статусом пунктов меню в зависимости от текущего состояния программы. Например, команда вставки данных из буфера обмена Windows не имеет смысла, если буфер обмена пуст. В такой ситуации лучше отменить и выделить серым цветом соответствующий пункт меню. Вообще, рекомендуется делать недоступными те пункты меню, использование которых в данный момент бессмысленно или даже небезопасно с точки зрения устойчивости работы приложения.
Каков же смысл использования запрещенных пунктов, которые внешне не отличаются от разрешенных пунктов? MSDN указывает, что их можно использовать в обучающих приложениях, когда некоторое окно выводится на экран только для иллюстрации и не должно реагировать на действия пользователя.
Для изменения статуса пунктов меню применяется функция EnableMenuItem.