Программирование в системе Windows2000, страница 8

После активизации строки меню пользователь переходит с одного пункта меню на другой с помощью клавиш со стрелками и выбирает пункт меню нажатием клавиши Enter. Нажатие клавиши Esc приводит к закрытию выпадающего меню, если оно открыто; в противном случае это нажатие переводит в неактивное состояние строку меню. Нажатие алфавитно-цифровой клавиши при удержании клавиши Alt или после нажатия клавиши Alt приводит к отображению выпадающего меню, связанного с этой алфавитно-цифровой клавишей (подчеркнутый символ в пункте меню). При последующем нажатии алфавитно-цифровых клавиш вызываются соответствующие пункты меню. Символ доступа с клавиатуры должен быть определен для всех пунктов меню. Дополнительная информация об определении символов доступа (оперативных клавиш) приведена в главе 6.

Пунктам меню могут быть назначены сочетания клавиш или оперативные клавиши. В частности, сочетания клавиш должны быть назначены тем командам, которыми приходится часто пользоваться. Когда пользователь нажимает сочетание клавиш, команда меню немедленно выполняется даже без отображения меню. В табл. 1.3 перечислены сочетания клавиш и символы доступа, которые должны использоваться для обычных пунктов меню. Символ доступа обозначается подчеркнутым символом.

Заголовкименю

Все выпадающие и каскадные меню имеют заголовки. Заголовком выпадающего меню является пункт, присутствующий в строке меню. Заголовком каскадного меню является текст пункта родительского меню. Заголовки меню должны описывать все содержимое меню и четко определять назначение всех пунктов меню. В заголовках меню не следует использовать пробелы; Windows интерпретирует пробел как конец одного заголовка и начало другого и включает в строку меню два заголовка меню. Кроме того, следует избегать применения редких составных слов.

Пунктыменю

Меню содержит отдельные варианты выбора, называемые пунктами меню. Пункты меню могут быть обозначены словами, графическими изображениями или сочетанием слов и графических изображений. Пункты меню должны наглядно информировать пользователя о характере и назначении пункта меню. На рис. 1.10 показано меню с пунктами разных типов.

Пункты меню должны быть сгруппированы во взаимосвязанные наборы, отделенные разделителем меню. Стандартный разделитель представляет собой одинарную линию, как показано на рис. 1.10. В качестве разделителей не следует использовать пункты меню; это не принято, и такой интерфейс может запутать пользователя. Пункты меню, которые являются недоступными или неприменимыми в определенном контексте, должны быть запрещены или удалены. Интерфейс, в котором неприменимый пункт меню разрешен, а пользователь информируется о том, что этот пункт недействителен, с помощью окна сообщения, является непродуманным и затрудняет работу пользователя. Лучше всего запрещать пункт меню (а не удалять его), поскольку это обеспечивает стабильность пользовательского интерфейса. Однако, если пункт меню неприменим или больше не нужен, лучше его удалить. Если запрещены все пункты какого-то подменю, должен быть запрещен заголовок этого подменю. Если в приложении предусмотрено размещение дополнительной информации в строке состояния, там должно быть указано,

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

Типыпунктовменю

Пункты меню различных типов дают пользователю наглядное представление о характере пункта меню и его назначении. Если пункт меню представляет собой команду, для выполнения которой требуется дополнительная информация, за пунктом меню должен следовать знак пропуска части строки (...). Такие команды, как Save As, обычно приводят к появлению диалогового окна, в котором пользователь должен ввести недостающую информацию. Однако не все команды, выполнение которых связано с отображением диалоговых или других вспомогательных окон, должны иметь знак пропуска части строки в заголовке меню. Например, после того как пользователь заполнит диалоговое окно команды Properties, для выполнения этой команды не нужны какие-либо дополнительные параметры или действия, поэтому знак пропуска части строки не требуется. Знак пропуска части строки не должен также применяться в тех командах, при выполнении которых появляется окно сообщения.