Сведения о меню
Меню — это список элементов, указывающих параметры или группы параметров (подменю) для приложения. Если щелкнуть пункт меню, откроется подменю или приложение выполняет команду. В этом разделе содержатся сведения по следующим темам:
- Строки меню и меню
- Контекстные меню
- Меню окна
- Идентификатор справки
- Стандартный интерфейс клавиатуры
- Клавиши доступа к меню
- Сочетания клавиш меню
- Ресурсы шаблона меню
- Шаблон меню в памяти
- Дескрипторы меню
- Функции создания меню
- Отображение меню
- Меню оконных классов
- Командные элементы и элементы, открывающие подменю
- Идентификатор элемента меню
- Позиция элемента меню
- Программный доступ к пунктам меню
- Элементы меню по умолчанию
- Пункты меню «Выбранные» и «Очистить»
- Пункты меню «Включено», «Серый» и «Отключено»
- Выделенные пункты меню
- Элементы меню, нарисованные владельцем
- Разделители элементов меню и разрывы строк
Строки меню и меню
Меню упорядочено в иерархии. На верхнем уровне иерархии находится строка меню; содержит список меню, которые, в свою очередь, могут содержать подменю. Строка меню иногда называется меню верхнего уровня, а меню и подменю также называются всплывающим меню.
Элемент меню может выполнить команду или открыть подменю. Элемент, выполняющий команду, называется командным элементом или командой.
Элемент в строке меню почти всегда открывает меню. Строки меню редко содержат командные элементы. Меню, открытое из строки меню, выпадает из строки меню и иногда называется раскрывающимся меню. При отображении раскрывающегося меню оно присоединяется к строке меню. Пункт меню в строке меню, который открывает раскрывающееся меню, также называется именем меню.
Имена меню в строке меню представляют main категорий команд, которые предоставляет приложение. При выборе имени меню в строке меню обычно открывается меню, элементы меню которого соответствуют командам в категории. Например, строка меню может содержать имя меню Файл , которое при выборе пользователем активирует меню с такими пунктами меню, как Создать, Открыть и Сохранить. Чтобы получить сведения о строке меню, вызовите Метод GetMenuBarInfo.
Только перекрывающееся или всплывающее окно может содержать строку меню; дочернее окно не может содержать его. Если окно имеет заголовок окна, система размещает строку меню сразу под ней. Строка меню отображается всегда. Однако подменю не отображается, пока пользователь не выберет пункт меню, который активирует его. Дополнительные сведения о перекрывающихся и всплывающих окнах см. в разделе Типы окон.
Каждое меню должно иметь окно владельца. Система отправляет сообщения в окно владельца меню, когда пользователь выбирает меню или выбирает элемент из меню.
В этом разделе рассматриваются следующие темы.
Контекстные меню
Система также предоставляет контекстные меню. Контекстное меню не прикрепляется к строке меню; он может отображаться в любом месте экрана. Приложение обычно связывает контекстное меню с частью окна, например с клиентской областью, или с определенным объектом, например значком. По этой причине эти меню также называются контекстными меню.
Контекстное меню остается скрытым, пока пользователь не активирует его, обычно путем щелчка правой кнопкой мыши выделенного фрагмента, панели инструментов или кнопки панели задач. Меню обычно отображается в позиции курсора или курсора мыши.
Меню окна
Меню «Окно» (также известное как меню «Система » или «Управление «) — это всплывающее меню, определенное и управляемое почти исключительно операционной системой. Пользователь может открыть меню окна, щелкнув значок приложения в строке заголовка или щелкнув правой кнопкой мыши в любом месте заголовка окна.
Меню Окно предоставляет стандартный набор пунктов меню, которые пользователь может выбрать для изменения размера или положения окна или закрытия приложения. Элементы в меню окна можно добавлять, удалять и изменять, но большинство приложений используют просто стандартный набор пунктов меню. В перекрывающемся, всплывающем или дочернем окне может быть меню окна. Перекрывающееся или всплывающее окно не включает меню окна.
Когда пользователь выбирает команду в меню Окно , система отправляет сообщение WM_SYSCOMMAND в окно владельца меню. В большинстве приложений процедура окна не обрабатывает сообщения из меню окна. Вместо этого он просто передает сообщения в функцию DefWindowProc для обработки сообщения по умолчанию. Если приложение добавляет команду в меню окна, процедура окна должна обработать ее.
Приложение может использовать функцию GetSystemMenu для создания копии меню окна по умолчанию для изменения. Любое окно, которое не использует функцию GetSystemMenu для создания собственной копии меню окна, получает стандартное меню окна.
Идентификатор справки
Связанный с каждой строкой меню, меню, подменю и контекстным меню является идентификатором справки. Если пользователь нажимает клавишу F1, когда меню активно, это значение отправляется окну владельца как часть сообщения WM_HELP .
Доступ к меню с помощью клавиатуры
Система предоставляет стандартный интерфейс клавиатуры для меню. Этот интерфейс можно улучшить, предоставив мнемонические клавиши доступа и сочетания клавиш (сочетания клавиш) для пунктов меню.
В следующих разделах описывается стандартный интерфейс клавиатуры, клавиши доступа и сочетания клавиш:
- Стандартный интерфейс клавиатуры
- Клавиши доступа к меню
- Сочетания клавиш меню
Стандартный интерфейс клавиатуры
Система предназначена для работы с мышью или другим указывающим устройством или без нее. Так как система предоставляет стандартный интерфейс клавиатуры, пользователь может использовать клавиатуру для выбора пунктов меню. Для этого интерфейса клавиатуры не требуется специальный код. Приложение получает командное сообщение независимо от того, выбирает ли пользователь пункт меню с помощью клавиатуры или мыши. Стандартный интерфейс клавиатуры обрабатывает следующие нажатия клавиш.
Клавиши Действие Алфавитный символ Выбирает первый пункт меню с указанным символом в качестве ключа доступа. Если выбранный элемент вызывает меню, отображается меню и выделяется первый элемент. В противном случае выбирается пункт меню. ALT Переключение в режим строки меню и выход из него. ALT + ПРОБЕЛ Отображает меню окна. ВВОД Активирует меню и выбирает первый пункт меню, если с ним связано меню. В противном случае этот нажатие клавиши выбирает элемент так, как если бы пользователь отпустил кнопку мыши во время выбора элемента. ESC Выход из режима меню. СТРЕЛКА ВЛЕВО Переход к предыдущему элементу меню верхнего уровня. К пунктам меню верхнего уровня относятся имена меню и меню окна. Если выбранный элемент находится в меню, выбирается предыдущий столбец в меню или выбирается предыдущий пункт меню верхнего уровня. СТРЕЛКА ВПРАВО Работает как клавиша СТРЕЛКА ВЛЕВО, за исключением противоположного направления. В меню это нажатие клавиши перемещается вперед на один столбец; Если выбранный в данный момент элемент находится в крайнем правом столбце, выбирается следующее меню. СТРЕЛКА ВВЕРХ ИЛИ СТРЕЛКА ВНИЗ Активирует меню при нажатии имени меню. При нажатии в меню нажатие клавиши СТРЕЛКА ВВЕРХ выбирает предыдущий элемент; Нажатие клавиши СТРЕЛКА ВНИЗ выбирает следующий элемент. Клавиши доступа к меню
Стандартный интерфейс клавиатуры для меню можно улучшить, добавив в пункты меню клавиши доступа (мнемоники). Клавиша доступа — это подчеркнутая буква в тексте пункта меню. Если меню активно, пользователь может выбрать пункт меню, нажав клавишу, соответствующую подчеркнутой букве элемента. Пользователь делает строку меню активной, нажав клавишу ALT, чтобы выделить первый пункт в строке меню. Меню активно при отображении.
Чтобы создать клавишу доступа для элемента меню, перед любым символом в текстовой строке элемента следует использовать амперсанд. Например, текстовая строка «&Move» заставляет систему подчеркивать букву «M».
Сочетания клавиш меню
Помимо клавиши доступа, с элементом меню может быть связана клавиша быстрого доступа. Сочетание клавиш отличается от клавиши доступа, так как меню не обязательно должно быть активным для ее работы. Кроме того, клавиша доступа всегда связана с элементом меню, а клавиша быстрого доступа обычно (но не обязательно) связана с элементом меню.
Текст, определяющий сочетание клавиш, добавляется в текстовую строку пункта меню. Текст ярлыка отображается справа от имени пункта меню после обратной косой черты и символа табуляции (\t). Например, «&Close\tAlt+F4» представляет собой команду Close с сочетанием клавиш ALT+F4 в качестве сочетания клавиш и с буквой «C» в качестве клавиши доступа. Дополнительные сведения см. в разделе Сочетания клавиш.
Создание меню
Меню можно создать с помощью шаблона меню или функций создания меню. Шаблоны меню обычно определяются как ресурсы. Ресурсы шаблона меню можно загрузить явным образом или назначить в качестве меню по умолчанию для класса окна. Вы также можете динамически создавать ресурсы шаблона меню в памяти.
В следующих разделах подробно описывается создание меню.
- Ресурсы шаблона меню
- Шаблон меню в памяти
- Дескрипторы меню
- Функции создания меню
- Отображение меню
- Меню класса окна
Ресурсы шаблона меню
Большинство приложений создают меню с помощью ресурсов шаблона меню. Шаблон меню определяет меню, включая элементы в строке меню и все меню. Сведения о создании ресурса шаблона меню см. в документации по средствам разработки.
После создания ресурса шаблона меню и добавления его в исполняемый (.exe) файл приложения можно использовать функцию LoadMenu для загрузки ресурса в память. Эта функция возвращает дескриптор меню, который затем можно назначить окну с помощью функции SetMenu . Меню можно назначить любому окну, которое не является дочерним.
Реализация меню в качестве ресурсов упрощает локализацию приложения для использования в нескольких странах или регионах. Для каждого языка необходимо локализовать только файл определения ресурсов, а не исходный код приложения.
Шаблон меню в памяти
Меню можно создать на основе шаблона меню, встроенного в память во время выполнения. Например, приложение, позволяющее пользователю настраивать меню, может создать шаблон меню в памяти на основе предпочтений пользователя. Затем приложение может сохранить шаблон в файле или реестре для дальнейшего использования. Чтобы создать меню на основе шаблона в памяти, используйте функцию LoadMenuIndirect . Описание форматов шаблонов меню см. в разделе Ресурсы шаблона меню.
Стандартный шаблон меню состоит из структуры MENUITEMTEMPLATEHEADER , за которой следует одна или несколько структур MENUITEMTEMPLATE .
Шаблон расширенного меню состоит из MENUEX_TEMPLATE_HEADER структуры, за которой следует одна или несколько MENUEX_TEMPLATE_ITEM структур.
Дескрипторы меню
Система создает уникальный дескриптор для каждого меню. Дескриптор меню — это значение типа HMENU. Приложение должно указывать дескриптор меню во многих функциях меню. Вы получаете дескриптор строки меню при создании меню или загрузке ресурса меню.
Чтобы получить дескриптор в строке меню для созданного или загруженного меню, используйте функцию GetMenu . Чтобы получить дескриптор подменю, связанного с элементом меню, используйте функцию GetSubMenu или GetMenuItemInfo . Чтобы получить дескриптор в меню окна, используйте функцию GetSystemMenu .
Функции создания меню
С помощью функций создания меню можно создавать меню во время выполнения или добавлять пункты меню в существующие меню. Функцию CreateMenu можно использовать для создания пустой строки меню, а функцию CreatePopupMenu — для создания пустого меню. Вы можете сохранить определенные сведения о параметрах для меню с помощью структуры MENUINFO . Чтобы получить или получить параметры меню, используйте GetMenuInfo или SetMenuInfo. Чтобы добавить элементы в меню, используйте функцию InsertMenuItem . Старые функции AppendMenu и InsertMenu по-прежнему поддерживаются, но insertMenuItem следует использовать для новых приложений.
Отображение меню
После загрузки или создания меню его необходимо назначить окну, прежде чем система сможет отобразить его. Меню можно назначить, определив меню класса. Дополнительные сведения см. в разделе Меню класса Окна. Вы также можете назначить меню окну, указав дескриптор меню в качестве параметра hMenu функции CreateWindow или CreateWindowEx или вызвав функцию SetMenu .
Чтобы отобразить контекстное меню, используйте функцию TrackPopupMenuEx . Контекстные меню, также называемые всплывающими или контекстными меню, обычно отображаются при обработке WM_CONTEXTMENU сообщения.
Меню можно назначить любому окну, которое не является дочерним.
Меню оконных классов
При регистрации класса окна можно указать меню по умолчанию, называемое меню классов . Для этого назначьте имя ресурса menu-template члену lpszMenuName структуры WNDCLASS , используемой для регистрации класса.
По умолчанию каждому окну назначается меню класса для класса окна, поэтому вам не нужно явно загружать меню и назначать его каждому окну. Меню класса можно переопределить, указав другой дескриптор меню в вызове функции CreateWindowEx . Вы также можете изменить меню окна после его создания с помощью функции SetMenu . Дополнительные сведения см. в разделе Классы Окон.
Пункты меню
В следующих разделах рассматриваются действия системы, когда пользователь выбирает пункт меню, а также способы, которыми приложение может управлять внешним видом и функциональностью элемента.
- Командные элементы и элементы, открывающие подменю
- Идентификатор элемента меню
- Позиция элемента меню
- Программный доступ к пунктам меню
- Элементы меню по умолчанию
- Пункты меню «Выбранные» и «Очистить»
- Пункты меню «Включено», «Серый» и «Отключено»
- Выделенные пункты меню
- Элементы меню, нарисованные владельцем
- Разделители элементов меню и разрывы строк
Командные элементы и элементы, открывающие подменю
Когда пользователь выбирает командный элемент, система отправляет командное сообщение в окно, которому принадлежит меню. Если элемент команды находится в меню окна, система отправляет WM_SYSCOMMAND сообщение. В противном случае он отправляет WM_COMMAND сообщение.
Связанный с каждым пунктом меню, открывающим подменю, является дескриптором соответствующего подменю. Когда пользователь указывает на такой элемент, система открывает подменю. В окно владельца не отправляется командное сообщение. Однако система отправляет WM_INITMENUPOPUP сообщение в окно владельца перед отображением подменю. Дескриптор подменю, связанного с элементом, можно получить с помощью функции GetSubMenu или GetMenuItemInfo .
Строка меню обычно содержит имена меню, но она также может содержать командные элементы. Подменю обычно содержит командные элементы, но может также содержать элементы, которые открывают вложенные подменю. Добавляя такие элементы в подменю, можно вкладывать меню в любую глубину. Чтобы предоставить пользователю визуальную подсказку, система автоматически отображает небольшую стрелку справа от текста пункта меню, открывающего подменю.
Идентификатор Menu-Item
С каждым элементом меню связано уникальное, определяемое приложением целое число, которое называется идентификатором элемента меню. Когда пользователь выбирает командный элемент в меню, система отправляет идентификатор элемента окну владельца в составе сообщения WM_COMMAND . Процедура window проверяет идентификатор, чтобы определить источник сообщения, и обрабатывает сообщение соответствующим образом. Кроме того, можно указать пункт меню, используя его идентификатор при вызове функций меню. например, чтобы включить или отключить пункт меню.
Элементы меню, открывающие подменю, имеют идентификаторы так же, как и командные элементы. Однако система не отправляет командное сообщение, когда такой элемент выбран в меню. Вместо этого система открывает подменю, связанное с элементом меню.
Чтобы получить идентификатор пункта меню в указанной позиции, используйте функцию GetMenuItemID или GetMenuItemInfo .
Положение Menu-Item
Помимо уникального идентификатора, каждый пункт меню в строке меню или меню имеет уникальное значение позиции. Крайний левый элемент в строке меню или верхний элемент меню имеет нулевую позицию. Значение позиции увеличивается для последующих пунктов меню. Система назначает значение позиции всем элементам меню, включая разделители. На следующем рисунке показаны значения положения элементов в строке меню и в меню.

При вызове функции меню, которая изменяет или извлекает сведения о конкретном пункте меню, можно указать элемент, используя его идентификатор или положение. Дополнительные сведения см. в следующем разделе.
Программный доступ к пунктам меню
Большинство функций меню позволяют указать пункт меню по позиции или по команде. Некоторые функции используют флаги MF_BYPOSITION и MF_BYCOMMAND для указания алгоритма поиска. другие имеют явный параметр fByPosition . Если указать пункт меню по позиции, номер элемента будет отсчитываемым от нуля индексом в меню. Если указать пункт меню по команде, в меню и его подменю выполняется поиск элемента, идентификатор меню которого равен указанному номеру элемента. Если несколько пунктов в иерархии меню совпадают с номером элемента, то не указано, какой из них используется. Если меню содержат повторяющиеся идентификаторы меню, следует использовать операции меню на основе позиции, чтобы избежать этой неоднозначности.
Элементы меню по умолчанию
Подменю может содержать один элемент меню по умолчанию. Когда пользователь открывает подменю двойным щелчком, система отправляет командное сообщение в окно владельца меню и закрывает меню, как если бы был выбран элемент команды по умолчанию. Если командный элемент по умолчанию отсутствует, подменю остается открытым. Чтобы получить и задать элемент по умолчанию для подменю, используйте функции GetMenuDefaultItem и SetMenuDefaultItem .
Пункты меню «Выбранные» и «Очистить»
Элемент меню можно выбрать или очистить. Система отображает растровое изображение рядом с выбранными пунктами меню, чтобы указать их выбранное состояние. Система не отображает растровое изображение рядом с чистыми элементами, если не указано определенное приложением «чистое» растровое изображение. Можно выбрать только элементы меню в меню; Элементы в строке меню не могут быть выбраны.
Приложения обычно проверка или очищают пункт меню, чтобы указать, действует ли параметр. Например, предположим, что в приложении есть панель инструментов, которую пользователь может отобразить или скрыть с помощью команды Панель инструментов в меню. Если панель инструментов скрыта, пункт меню Панель инструментов становится неясным. Когда пользователь выбирает команду, приложение проверяет пункт меню и отображает панель инструментов.
Атрибут проверка метки определяет, выбран ли пункт меню. Атрибут проверка пометки элемента меню можно задать с помощью функции CheckMenuItem. Функцию GetMenuState можно использовать, чтобы определить, выбран или очищен пункт меню.
Иногда группа пунктов меню соответствует набору взаимоисключающих параметров. В этом случае можно указать выбранный параметр с помощью выбранного пункта меню (аналогично элементу управления переключателя). Выбранные элементы-переключатели отображаются с помощью растрового изображения маркеров вместо растрового изображения проверка метки. Чтобы проверка элемент меню и сделать его переключателем, используйте функцию CheckMenuRadioItem.
По умолчанию система отображает точечный рисунок проверка или маркер рядом с выбранными пунктами меню, а рядом с удаленными пунктами меню нет растрового изображения. Однако можно использовать функцию SetMenuItemBitmaps , чтобы связать определенные приложением выбранные и очищенные растровые изображения с элементом меню. Затем система использует указанные растровые изображения, чтобы указать выбранное или очищенное состояние пункта меню.
Определяемые приложением растровые изображения, связанные с элементом меню, должны иметь тот же размер, что и растровое изображение по умолчанию проверка метки, размеры которых могут отличаться в зависимости от разрешения экрана. Чтобы получить правильные измерения, используйте функцию GetSystemMetrics . Вы можете создать несколько ресурсов растровых изображений для разных разрешений экрана; создайте один ресурс растрового изображения и при необходимости масштабируйте его; или создайте точечный рисунок во время выполнения и нарисуйте в нем изображение. Растровые изображения могут быть монохромными или цветными. Тем не менее, поскольку элементы меню инвертируются при выделении, внешний вид некоторых инвертированных цветовых растровых изображений может быть нежелательным. Дополнительные сведения см. в разделе Растровые изображения.
Пункты меню «Включено», «Серый» и «Отключено»
Элемент меню может быть включен, выделен серым цветом или отключен. По умолчанию элемент меню включен. Когда пользователь выбирает включенный пункт меню, система отправляет командное сообщение окну владельца или отображает соответствующее подменю в зависимости от типа пункта меню.
Если элементы меню недоступны пользователю, они должны быть серым или отключены. Не удается выбрать пункты меню с серым и отключенным цветом. Отключенный элемент выглядит так же, как включенный элемент. Когда пользователь щелкает отключенный элемент, он не выбирается, и ничего не происходит. Отключенные элементы могут быть полезны, например, в учебнике, где отображается меню, которое выглядит активно, но не является.
Приложение затеняет недоступный пункт меню, чтобы предоставить пользователю визуальную подсказку о том, что команда недоступна. Серый элемент можно использовать, если действие не подходит (например, команду Печать можно серым цветом в меню Файл , если в системе не установлен принтер).
Функция EnableMenuItem включает, отключает или отключает пункт меню. Чтобы определить, включен ли элемент меню, выделен серым цветом или отключен, используйте функцию GetMenuItemInfo .
Вместо GetMenuItemInfo можно также использовать функцию GetMenuState , чтобы определить, включен ли элемент меню, выделен серым или отключен.
Выделенные пункты меню
Система автоматически выделяет пункты меню в меню по мере их выбора пользователем. Однако выделение можно явно добавить или удалить из имени меню в строке меню с помощью функции HiliteMenuItem . Эта функция не влияет на пункты меню в меню. Однако, если hiliteMenuItem используется для выделения имени меню, имя будет выбрано только. Если пользователь нажимает клавишу ВВОД, выделенный элемент не выбирается. Эта функция может быть полезна, например, в приложении для обучения, демонстрирующем использование меню.
Элементы меню Owner-Drawn
Приложение может полностью контролировать внешний вид пункта меню с помощью элемента, нарисованного владельцем. Элементы, нарисованные владельцем, требуют, чтобы приложение полностью отвечало за рисование выделенных (выделенных), выделенных и очищенных состояний. Например, если приложение предоставило меню шрифтов, оно может нарисовать каждый пункт меню с помощью соответствующего шрифта; элемент для roman будет нарисован с помощью романа, элемент для курсивного будет нарисован курсивом и т. д. Дополнительные сведения см. в разделе Создание элементов меню Owner-Drawn.
Разделители пунктов меню и разрывы строк
Система предоставляет специальный тип пункта меню, называемый разделителем, который отображается в виде горизонтальной линии. Разделитель можно использовать для разделения меню на группы связанных элементов. Разделитель нельзя использовать в строке меню, а пользователь не может выбрать разделитель.
Если строка меню содержит больше имен меню, чем помещается в одной строке, система автоматически разбивает строку меню на две или более строк. Вы можете вызвать разрыв строки в определенном элементе в строке меню, назначив элементу флаг типа MFT_MENUBREAK . Система помещает этот элемент и все последующие элементы в новую строку.
Если меню содержит больше элементов, чем в одном столбце, меню будет усечено. Вы можете вызвать разрыв столбца в определенном элементе меню, назначив элементу флаг типа MFT_MENUBREAK или используя параметр MENUBREAK в инструкции MENUITEM . Система помещает этот элемент и все последующие элементы в новый столбец. Флаг типа MFT_MENUBARBREAK имеет тот же эффект, за исключением того, что между новым и старым столбцами отображается вертикальная линия.
Если для назначения разрывов строк используются функции AppendMenu, InsertMenu или ModifyMenu , следует назначить флаги типов MF_MENUBREAK или MF_MENUBARBREAK.
Сообщения, используемые с меню
Система сообщает о действиях, связанных с меню, отправляя сообщения в процедуру окна, которому принадлежит меню. Система отправляет ряд сообщений, когда пользователь выбирает элементы в строке меню или нажимает правую кнопку мыши, чтобы отобразить контекстное меню.
Когда пользователь активирует элемент в строке меню, окно владельца сначала получает сообщение WM_SYSCOMMAND . Это сообщение содержит флаг, указывающий, активировал ли пользователь меню с помощью клавиатуры (SC_KEYMENU) или мыши (SC_MOUSEMENU). Дополнительные сведения см. в разделе Доступ к меню с помощью клавиатуры.
Затем перед отображением каких-либо меню система отправляет WM_INITMENU сообщение в процедуру окна, чтобы приложение ранее их не увидел. Система отправляет сообщение WM_INITMENU только один раз для каждой активации меню.
Когда пользователь указывает на пункт меню, открывающий подменю, система отправляет окну владельца сообщение WM_INITMENUPOPUP перед отображением подменю. Это сообщение дает приложению возможность изменить подменю перед его отображением.
Каждый раз, когда пользователь перемещает выделение из одного элемента в другой, система отправляет WM_MENUSELECT сообщение в процедуру окна владельца меню. Это сообщение идентифицирует выбранный в данный момент пункт меню. Многие приложения предоставляют информационную область в нижней части окна main и используют это сообщение для отображения дополнительных сведений о выбранном пункте меню.
Когда пользователь выбирает командный пункт в меню, система отправляет WM_COMMAND сообщение в процедуру окна. Слово нижнего порядка параметра wParamсообщения WM_COMMAND содержит идентификатор выбранного элемента. Процедура окна должна проверить идентификатор и обработать сообщение соответствующим образом.
Вы можете сохранить сведения для меню с помощью структуры MENUINFO . Если меню определено с помощью MENUINFO. Значение dwStyle MNS_NOTIFYBYPOS, при выборе элемента система отправляет WM_MENUCOMMAND вместо WM_COMMAND . Это позволяет получить доступ к информации в структуре MENUINFO , а также напрямую предоставляет индекс выбранного элемента.
Не все меню доступны в строке меню окна. Многие приложения отображают контекстные меню, когда пользователь щелкает правую кнопку мыши в определенном месте. Такие приложения должны обрабатывать сообщение WM_CONTEXTMENU и при необходимости отображать контекстное меню. Если приложение не отображает контекстное меню, оно должно передать сообщение WM_CONTEXTMENU функции DefWindowProc для обработки по умолчанию.
Сообщение WM_MENURBUTTONUP отправляется, когда пользователь отпускает правую кнопку мыши, когда курсор находится в пункте меню. Это сообщение предоставляется, чтобы приложения могли отображать контекстное или контекстное меню для пункта меню.
Существует несколько сообщений, в которых используются только меню перетаскивания. WM_MENUGETOBJECT отправляется владельцу меню перетаскивания, когда курсор мыши входит в элемент меню или перемещается от центра элемента к верхней или нижней части элемента. Сообщение WM_MENUDRAG отправляется, когда пользователь фактически перетаскивает элемент меню.
При уничтожении раскрывающегося меню или подменю система отправляет WM_UNINITMENUPOPUP сообщение.
Уничтожение меню
Если меню назначается окну и оно уничтожается, система автоматически уничтожает меню и его подменю, освобождая дескриптор меню и занимаемую им память. Система не уничтожает автоматически меню, которое не назначено окну. Приложение должно уничтожить неназначенные меню, вызвав функцию DestroyMenu . В противном случае меню продолжает существовать в памяти даже после закрытия приложения. Чтобы завершить активное меню вызывающего потока, используйте EndMenu. Если платформа не поддерживает EndMenu, отправьте владельцу активного меню WM_CANCELMODE сообщение.
Меню Windows 7 (основы проектирования)
Это руководство по проектированию было создано для Windows 7 и не обновлялось для более новых версий Windows. Большая часть руководства по-прежнему применяется в принципе, но презентация и примеры не отражают наше текущее руководство по проектированию.
Меню — это иерархические списки команд или параметров, доступных пользователям в текущем контексте.
Раскрывающееся меню — это меню, отображаемое по запросу при щелчке мыши или наведении указателя мыши. Как правило, они скрыты от просмотра и, следовательно, являются эффективным средством экономии места на экране. Подменю или каскадное меню — это дополнительное меню, отображаемое по запросу из меню. На них указывает стрелка в конце метки подменю. Пункт меню — это отдельная команда или параметр в меню.
Меню часто отображаются из строки меню, которая представляет собой список помеченных категорий меню, обычно расположенных в верхней части окна. В отличие от этого, контекстное меню выпадает, когда пользователи щелкают правой кнопкой мыши объект или область окна, которая поддерживает контекстное меню.

Типичная строка меню, отображающая раскрывающееся меню и подменю.
Рекомендации, касающиеся кнопок, панелей инструментов и клавиатуры , представлены в отдельных статьях.
Варианты использования
Меню имеют несколько шаблонов использования:
Использование Пример Строки меню
в строке меню отображаются команды и параметры в раскрывающихся меню.пункты меню очень распространены и легко найти, а также эффективно использовать пространство.
Строка меню из Почты Windows.Меню панели инструментов
строка меню, реализованная в виде панели инструментов.меню панели инструментов — это панели инструментов, состоящие в основном из команд в кнопках меню и разделенных кнопок, с несколькими прямыми командами, если таковые имеются.
Меню панели инструментов в Фотоальбоме Windows.
Рекомендации по этому шаблону см. в разделе Панели инструментов.Меню вкладок
на вкладках, которые отображают небольшой набор команд и параметров, связанных с вкладкой в раскрывающемся меню.вкладки с меню выглядят как обычные вкладки, за исключением того, что их нижняя часть содержит кнопку со стрелкой раскрывающегося списка. При нажатии кнопки вместо выбора вкладки отображается раскрывающееся меню.
Меню вкладок используются в Медиаплеер Windows.Кнопки меню
командные кнопки, которые отображают небольшой набор связанных команд в раскрывающемся меню.кнопки меню выглядят как обычные кнопки, за исключением того, что в них есть стрелка раскрывающегося списка. При нажатии кнопки вместо выполнения команды отображается раскрывающееся меню.
Разделенные кнопки похожи на кнопки меню, за исключением того, что они являются разновидностями команды, и при щелчке левой части кнопки действие выполняется непосредственно с меткой.
Кнопка меню с небольшим набором связанных команд.Контекстные меню
раскрывающиеся меню, в котором отображается небольшой набор команд и параметров, связанных с текущим контекстом.контекстные меню раскрывающегося списка, когда пользователи щелкают правой кнопкой мыши объект или область окна, поддерживающую контекстное меню.
контекстное меню из проводника Windows.
Если контекстные меню являются лучшим выбором меню, но вам нужно решение, подходящее для всех пользователей, можно использовать кнопку со стрелкой раскрывающегося меню.
Контекстное меню, отображающееся с помощью кнопки раскрывающегося меню.Меню области задач
небольшой набор команд, связанных с выбранным объектом или режимом программы.в отличие от контекстных меню, они отображаются автоматически в области окна, а не по запросу.
Меню области задач из средства просмотра фотоальбома Windows.Это правильный пользовательский интерфейс?
Чтобы определиться, ответьте на вопросы:
Строки меню
Действуют следующие условия:
- Является ли окно основным окном?
- Много ли пунктов меню?
- Есть ли много категорий меню?
- Применяется ли большинство пунктов меню ко всей программе и основному окну?
- Нужно ли использовать меню для всех пользователей?
Если да, рассмотрите возможность использования строки меню.
Меню панели инструментов
Действуют следующие условия:
- Является ли окно основным окном?
- Есть ли в окне панель инструментов?
- Есть ли только несколько категорий меню?
- Нужно ли использовать меню для всех пользователей?
Если да, рассмотрите возможность использования меню панели инструментов вместо или в дополнение к строке меню.
Меню вкладок
Действуют следующие условия:
- Является ли окно основным окном?
- Есть ли в окне вкладки, где каждая вкладка используется для выделенного набора задач (в отличие от использования вкладок для отображения различных представлений)?
- Существует ли одна категория меню, которая применяется к каждой вкладке?
- Есть ли много команд и параметров, но только небольшой набор для каждой вкладки?
В этом случае рекомендуется использовать меню вкладок вместо строки меню.
Контекстное меню
Действуют следующие условия:
- Существует ли небольшой набор контекстных команд и параметров, которые применяются к выбранному объекту или области окна?
- Являются ли эти пункты меню избыточными?
- Знакомы ли целевые пользователи с контекстными меню?
В этом случае рассмотрите возможность предоставления контекстных меню для объектов и областей окна, которым они нужны.
Для браузерных программ меню области задач являются более распространенным решением контекстных команд. В настоящее время пользователи ожидают, что контекстные меню в браузерных программах будут универсальными и бесполезными.
Меню области задач
Действуют следующие условия:
- Является ли окно основным окном?
- Существует ли небольшой набор контекстных команд и параметров, которые применяются к выбранному объекту или режиму программы?
- Есть ли несколько категорий меню?
- Нужно ли использовать меню для всех пользователей?
Если это так, рассмотрите возможность использования меню области задач вместо контекстного меню.
Принципы проектирования
Эффективные меню, которые повышают удобство работы с пользователем:
- Используйте презентацию команд, которая соответствует типу программы, типам окон, использованию команд и целевым пользователям.
- Хорошо организованы, используя стандартную организацию меню, когда это необходимо.
- Эффективное использование строк меню, панелей инструментов и контекстных меню.
- Эффективное использование значков.
- Эффективно используйте клавиши доступа и сочетания клавиш.
Если вы делаете только одно.
Выберите презентацию команд, соответствующую типу программы, типам окон, использованию команд и целевым пользователям.
Рекомендации
Общие сведения
- Для всех шаблонов меню, кроме строк меню, требуется стрелка раскрывающегося списка, указывающего на наличие раскрывающегося меню. Наличие меню само собой разумеется в строке меню, но не в других шаблонах.
- Не изменяйте имена пунктов меню динамически. Это сбивает с толку и непредвиденно. Например, не изменяйте параметр книжного режима на альбомный режим при выборе. Для режимов используйте маркеры и галочки .
- Исключение: Имена пунктов меню, основанные на именах объектов, можно изменять динамически. Например, списки недавно использовавшихся файлов или имен окон могут быть динамическими.
Строки меню
- Рассмотрите возможность исключения строк меню с тремя или менее категориями меню. Если есть только несколько команд, отдавайте предпочтение более легким альтернативам, таким как меню панели инструментов, или более прямым альтернативам, таким как командные кнопки и ссылки.
- Не более 10 категорий меню. Слишком много категорий меню является подавляющим и затрудняет использование строки меню.
- Рекомендуется скрыть строку меню, если панель инструментов или прямые команды предоставляют почти все команды, необходимые большинству пользователей. Разрешить пользователям отображать или скрывать с помощью пункта «Строка меню» проверка пометки в меню панели инструментов.

В этом примере Internet Обозреватель Windows предоставляет параметр строки меню.
Дополнительные сведения см. в разделе Скрытие строк меню.
Скрытие строк меню
Как правило, панели инструментов отлично работают вместе с строками меню, так как наличие и того, и другого позволяет сосредоточиться на своих сильных сторонах без компромиссов.
- Скрытие строки меню по умолчанию, если панель инструментов делает строку меню избыточной.
- Скройте строку меню, а не удаляйте ее полностью, так как строки меню более доступны для пользователей клавиатуры.
- Чтобы восстановить строку меню, укажите флажок Строка меню в категории Меню Вид (для основных панелей инструментов) или Сервис (для дополнительных панелей инструментов). Дополнительные сведения см. в разделе Стандартное меню и разделенные кнопки.
Категории меню
- Выберите имена отдельных слов для категорий меню. Использование нескольких слов делает разделение между категориями запутанным.
- Для программ, которые создают или просматривают документы, используйте стандартные категории меню, такие как Файл, Правка, Вид, Сервис и Справка. Это делает общие пункты меню предсказуемыми и более простыми в поиске.
- Для других типов программ рассмотрите возможность упорядочения команд и параметров в более полезные, естественные категории на основе целей вашей программы и того, как пользователи думают о своих задачах и целях. Не стесняйтесь использовать стандартную организацию меню, если она не подходит для вашей программы.
- Если вы решили использовать нестандартные категории меню, необходимо выбрать правильные имена категорий. Дополнительные сведения см. в разделе Метки .
- Предпочитать категории меню, ориентированные на задачи, а не универсальные категории. Категории, ориентированные на задачи, упрощают поиск пунктов меню.

В этом примере Медиаплеер Windows использует категории меню, ориентированные на задачи.
- Избегайте категорий меню только с одним или двумя пунктами меню. Если это целесообразно, консолидируйте с другими категориями меню, возможно, с помощью подменю.
- Рассмотрите возможность размещения одного и того же пункта меню в нескольких категориях только в том случае, если:
- Элемент меню логически относится к нескольким категориям меню.
- У вас есть данные, показывающие, что пользователям не удается найти элемент в одной категории меню.
- У вас есть только один или два трудно найти пункты меню в нескольких категориях.
- Исключение: В шаблоне меню вкладок могут быть разные параметры и пункты меню справки в каждом меню вкладок.

В этом примере Медиаплеер Windows пункты меню «Параметры» и «Справка» в каждом меню вкладок.
Организация и порядок элементов меню
- Упорядочение пунктов меню в группы из семи или менее строго связанных элементов. Для этого подменю считается одним элементом меню в родительском меню.
- Не размещайте более 25 элементов на одном уровне меню (не считая подменю).
- Разместите разделители между группами в меню. Разделитель — это одна строка, охватывающая ширину меню.
- В меню разместите группы в логическом порядке. Если логический порядок отсутствует, сначала поместите наиболее часто используемые группы.
- В группе разместите элементы в их логическом порядке. Если логический порядок отсутствует, сначала поместите наиболее часто используемые элементы. Поместите числовые элементы (например, процентные значения масштаба) в числовом порядке.
Подменю
- Избегайте использования подменю без необходимости. Подменю требуется больше физических усилий для использования и, как правило, затрудняет поиск пунктов меню.
- Не помещать часто используемые пункты меню в подменю. Это сделает использование этих команд неэффективным. Однако часто используемые команды можно поместить в подменю, если к ним обычно обращаются более напрямую, например с помощью панели инструментов.
- Рассмотрите возможность использования подменю, если:
- Это упрощает родительское меню, так как оно содержит много элементов (20 или более) или подменю входит в группу из более чем семи элементов.
- Элементы в подменю используются реже, чем в родительском меню.
- Подменю будет содержать три или более элементов.
- Есть три или более команд, которые начинаются с одного и того же слова. В этом случае используйте это слово в качестве метки подменю.

В этом примере подменю Создать заменяет отдельные команды для нового почтового сообщения, нового сообщения новостей, новой папки и нового контакта.
- Используйте не более трех уровней меню. Это значит, что у вас может быть основное меню и не более двух уровней подменю. Два уровня подменю должны быть редкими.
Уровень представления
- Отключите пункты меню, которые не применяются к текущему контексту, вместо того, чтобы удалить их. Это делает содержимое строки меню стабильным и удобным для поиска. Исключения:
- Для категорий контекстного меню удалите, а не отключите элементы контекстного меню, которые не применяются к текущему контексту. Категория меню является контекстной, если она отображается только для определенных режимов, например при выборе определенного типа объекта. Дополнительные сведения см. в руководстве по удалению и отключению для контекстных меню.
- Если определение того, когда следует отключить элемент меню, вызывает заметные проблемы с производительностью, оставьте его активным и при необходимости вы увидите сообщение об ошибке.
Меню вкладок
- Каждое меню вкладок может содержать контекстные параметры и пункты меню «Справка». Это отличается от всех других шаблонов меню. Каждая вкладка используется для выделенного набора задач, поэтому любая избыточность в меню вкладок не вызывает путаницы.
Контекстные меню
- Используйте контекстные меню только для контекстных команд и параметров. Пункты меню должны применяться только к выбранному объекту или области окна ( или к области окна), а не ко всей программе.
- Не делайте команды доступными только через контекстные меню. Как и сочетания клавиш, контекстные меню являются альтернативными средствами выполнения команд и выбора параметров. Например, команда Properties также доступна в строке меню или клавише доступа ALT+ВВОД.
- Предоставьте контекстные меню для всех объектов и областей окна , которые пользуются небольшим набором контекстных команд и параметров. Многие пользователи регулярно щелкают правой кнопкой мыши и ожидают найти контекстные меню в любом месте.
- Рассмотрите возможность использования кнопки со стрелкой раскрывающегося меню для контекстных меню, предназначенных для всех пользователей. Обычно контекстные меню подходят для команд и параметров, предназначенных для опытных пользователей. Однако вы можете использовать кнопку раскрывающегося меню в тех случаях, когда контекстные меню являются лучшим выбором и вам нужно ориентироваться на всех пользователей.

В этом примере кнопка раскрывающегося меню используется для отображения контекстного меню.
Организация и порядок элементов меню
- Упорядочение пунктов меню в группы из семи или менее строго связанных элементов.
- Избегайте использования подменю , чтобы сделать контекстные меню простыми, прямыми и эффективными.
- Не размещайте более 15 элементов в контекстном меню.
- Разместите разделители между группами в меню. Разделитель — это одна строка, охватывающая ширину меню.
- Показать пункты меню в следующем порядке:
Уровень представления
- Отображение команды по умолчанию с помощью полужирного шрифта. При практическом использовании также сделайте его первым пунктом меню. Команда по умолчанию вызывается, когда пользователи дважды щелкают или выбирают объект и нажимают клавишу ВВОД.
- Удалите, а не отключайте элементы контекстного меню, которые не применяются к текущему контексту. Это делает контекстные меню контекстными и эффективными.
- Исключение: Отключите пункты меню, которые не применяются, если есть разумное ожидание, что они будут доступны:
- Всегда иметь соответствующие стандартные команды контекстного меню, такие как Вырезать, Копировать, Вставить, Удалить и Переименовать.
- Всегда иметь команды, которые завершают связанные наборы. Например, если имеется значение Назад, то также должно быть значение Forward. Если есть вырезать, всегда имитируйте копировать и вставить.
Маркеры и галочки
- Элементы меню, которые являются параметрами, могут использовать маркеры и галочки. Команды могут не выполняться.
- Используйте маркер, чтобы выбрать один вариант из небольшого набора взаимоисключающих вариантов. В группе всегда должно быть не менее двух маркеров. Дополнительные сведения см. в разделе Переключатели.
- Используйте флажок для включения или выключения независимого параметра. Если выбранные и очищенные состояния не являются четкими и однозначными противоположности, используйте набор маркеров. Дополнительные сведения см. в разделе Флажки.
- Для состояния смешанной галочки отображается пункт меню без галочки. Смешанное состояние используется для множественного выбора, чтобы указать, что параметр задан для некоторых, но не для всех объектов, поэтому каждый отдельный объект имеет выбранное или очищенное состояние. Смешанное состояние не используется в качестве третьего состояния для отдельного элемента.
- Установите разделители между связанными наборами флажок или маркеров. Разделитель — это одна строка, охватывающая ширину меню.
Значки
- Рекомендуем добавлять значки пунктов меню для:
- Наиболее часто используемые пункты меню.
- Пункты меню, значки которых являются стандартными и хорошо известными.
- пунктов меню, значок которых хорошо иллюстрирует предназначение команды.

В этом примере меню «Упорядочить» содержит значки только для наиболее часто используемых пунктов меню.
- Убедитесь, что значки меню соответствуют рекомендациям по значкам в стиле Aero.
Дополнительные сведения и примеры см. в разделе Значки.
Ключи доступа
- Назначьте ключи доступа всем пунктам меню. Без исключений.
- По возможности назначьте ключи доступа для часто используемых команд в соответствии со стандартными назначениями ключей доступа. Хотя согласованные назначения ключей доступа не всегда возможны, они, безусловно, предпочтительнее, особенно для часто используемых команд.
- Для динамических пунктов меню (например, недавно использовавшихся файлов) назначьте ключи доступа числовым образом.

В этом примере программа Paint в Windows назначает числовые ключи доступа недавно использованным файлам.
- Назначьте уникальные ключи доступа на уровне меню. Клавиши доступа можно повторно использовать на разных уровнях меню.
- Упростите поиск ключей доступа:
- Для наиболее часто используемых пунктов меню выберите символы в начале первого или второго слова метки, предпочтительно первый символ.
- Для менее часто используемых пунктов меню выберите буквы, которые являются отличительными согласными или гласными в метке.
- Буквы шириной всего в один пиксель, например i и l.
- Буквы с потомками, такими как g, j, p, q и y.
- Буквы рядом с буквой с нисходом.
Дополнительные рекомендации и примеры см. в разделе Клавиатура.
Сочетания клавиш
- Назначьте сочетания клавиш наиболее часто используемым пунктам меню. Редко используемым пунктам меню не требуются сочетания клавиш, так как вместо этого пользователи могут использовать ключи доступа.
- Не делайте сочетание клавиш единственным способом выполнения задачи. Пользователи также должны иметь возможность использовать мышь или клавиатуру с клавишами TAB, стрелками и клавишами доступа.
- Для известных сочетаний клавиш используйте стандартные назначения.
- Не назначайте разные значения хорошо известным сочетаниям клавиш. Поскольку они запоминаются, несогласованные значения для известных ярлыков разочаровывают и подвержены ошибкам. Хорошо известные сочетания клавиш, используемые программами Windows, см. в разделе Сочетания клавиш Windows.
- Не пытайтесь назначить сочетания клавиш для всей системы. Сочетания клавиш программы будут действовать только в том случае, если программа имеет фокус ввода.
- Задокументируйте все сочетания клавиш. Это поможет пользователям узнать назначения сочетаний клавиш.
- Исключение: Не отображать назначения сочетаний клавиш в контекстных меню. В контекстных меню не отображаются назначения сочетаний клавиш, так как они оптимизированы для повышения эффективности.
- Выберите сочетания клавиш, у которых нет стандартных назначений. Никогда не переназначайте стандартные сочетания клавиш.
- Последовательно используйте нестандартные назначения ключей во всей программе. Не присваивайте разные значения в разных окнах.
- По возможности выберите назначения мнемонических ключей, особенно для часто используемых команд.
- Используйте функциональные ключи для команд, имеющих небольшой эффект, например команд, которые применяются к выбранному объекту. Например, F2 переименовывает выбранный элемент.
- Используйте сочетания клавиш CTRL для команд, имеющих крупномасштабный эффект, например команд, которые применяются ко всему документу. Например, ctrl+S сохраняет текущий документ.
- Используйте сочетания клавиш SHIFT для команд, которые расширяют или дополняют действия стандартной сочетания клавиш. Например, сочетание клавиш ALT+TAB проходит по открытым основным окнам, а alt+SHIFT+TAB — в обратном порядке. Аналогично, клавиша F1 отображает справку, а клавиши SHIFT+F1 — контекстно-зависимые справки.
- Не используйте следующие символы для сочетаний клавиш: @ $ <> [] \ ~ | ^ ‘ <>. Эти символы требуют разных сочетаний клавиш на разных языках или зависят от языкового стандарта.
- Не используйте сочетания CTRL+ALT, так как Windows интерпретирует эту комбинацию в некоторых языковых версиях как клавишу ALTGR, которая создает буквенно-цифровые символы.
Дополнительные рекомендации и стандартные сочетания клавиш см. в разделе Клавиатура.
Стандартные меню
- Используйте стандартную организацию меню для программ, которые создают или просматривают документы. Стандартная организация меню делает общие пункты меню предсказуемыми и удобными для поиска.
- Для других типов программ используйте стандартную организацию меню только тогда, когда это имеет смысл. Рассмотрите возможность упорядочения команд и параметров в более полезные, естественные категории на основе целей вашей программы и того, как пользователи думают о своих задачах и целях.
Стандартные строки меню
Стандартная структура строки меню выглядит следующим образом. В этом списке показаны категории меню и метки элементов, их порядок с разделителями, клавиши доступа и сочетаний клавиш, а также многоточие.
Файл
Создать сочетание клавиш CTRL+N
Открыть. CTRL+O
Закрыть сохранение CTRL+S
Сохранить как. Отправить на печать. CTRL+P
Предварительный просмотр
Параметры страницыВыйдите из клавиш ALT+F4 (ярлык обычно не указан)
Правка
Отмена клавиш CTRL+Z
Повтор ctrl+Y
язательно, количество
Вырезать клавиши CTRL+X
Копирование клавиш CTRL+C
Вставка клавиш CTRL+V
язательно, количество
Нажмите все клавиши CTRL+A.
язательно, количество
Delete Del (ярлык обычно не предоставляется)
язательно, количество
Найти. CTRL+F
Поиск следующей клавиши F3 (команда обычно не предоставляется)
Заменить. CTRL+H
Перейти к. CTRL+GView (Вид)
Панели инструментов
Строка состояния
язательно, количество
Масштаб с помощью CTRL++
Уменьшить масштаб ctrl+-
язательно, количество
Полноэкранный режим F11
Обновить F5Инструменты
язательно, количество
Параметры Справка F1
язательно, количество
ОСтандартные кнопки меню панели инструментов
Ниже приведены стандартные кнопки меню панели инструментов. В этом списке отображаются категории меню и метки элементов, их порядок с разделителями, сочетания клавиш и многоточие.
Инструменты Полноэкранный режимF11(Переназначение ключа доступа, если также используется функция Найти.) Панели инструментов(Обратите внимание, что команда строка меню отображается здесь.) < разделитель>Печать. Найти. < разделитель>масштабов текста Организация Новая папкаCtrl+N CutCtrl+X CopyCtrl+C PasteCtrl+V Select allCtrl+A DeleteDel(ярлык обычно не задан) Переименовать Страница Новое окноCtrl+N Масштаб текста
Стандартные контекстные меню
Стандартное содержимое контекстного меню выглядит следующим образом. В этом списке отображаются метки пунктов меню, их порядок с разделителями, клавиши доступа и многоточие. В контекстных меню не отображаются сочетания клавиш.
Откройте Запуск воспроизведения, чтобы изменить печать. < разделитель>Cut Copy Paste ( переименования
Использование многоточия
Хотя команды меню используются для немедленных действий, для выполнения действия могут потребоваться дополнительные сведения. Укажите команду, для которой требуются дополнительные сведения (включая подтверждение), добавив многоточие в конце метки.

В этом примере печать. Отображает диалоговое окно Печать для сбора дополнительных сведений.
Правильное использование многоточия важно, чтобы указать, что пользователи могут сделать дальнейший выбор перед выполнением действия или даже полностью отменить действие. Визуальная подсказка, предлагаемая многоточием, позволяет пользователям без страха исследовать ваше программное обеспечение.
Это не означает, что следует использовать многоточие, когда действие отображает другое окно только в том случае, если для выполнения действия требуются дополнительные сведения. Например, команды «О программе», «Дополнительно», «Справка», «Параметры», «Свойства» и «Параметры» должны отображать другое окно при щелчке, но не требуют дополнительных сведений от пользователя. Поэтому они не нуждаются в многоточии.
В случае неоднозначности (например, в метке команды отсутствует глагол), примите решение на основе наиболее вероятного действия пользователя. Если простой просмотр окна является распространенным действием, не используйте многоточие.
Правильно:
Сведения о версии
В первом примере пользователи, скорее всего, выберут цвет, поэтому правильно использовать многоточие. Во втором примере пользователи, скорее всего, будут просматривать сведения о версии, что делает многоточие ненужным.
При определении необходимости многоточия для команды меню не используйте необходимость повышения привилегий в качестве фактора.
Повышение прав не является информацией, необходимой для выполнения команды (скорее, это для разрешения), и необходимость повышения указывается с помощью щита безопасности.
Метки
- Используйте выделение прописных букв, как в предложении.
- Исключение: Для устаревших приложений при необходимости можно использовать прописные буквы в стиле заголовка, чтобы избежать смешивания стилей прописных букв.
Имена категорий меню
- Используйте имена категорий меню, которые являются глаголами одного слова или существительными. Метку из нескольких слов можно спутать с двумя метками из одного слова.
- Предпочитать имена меню на основе глаголов. Однако опустите команду , если она имеет значение Create, Show, View или Manage. Например, следующие категории меню не содержат глаголов:
- Таблица
- Инструменты
- Окно
Имена элементов меню
- Используйте имена пунктов меню, которые начинаются с глагола, существительного или существительного фразы.
- Предпочитать имена меню на основе глаголов. Однако опустите глагол, если:
- Команда Создать, Показать, Просмотреть или Управление. Например, следующие команды не содержат глаголов:
- Сведения
- Продвинутый уровень
- Во весь экран
- Создать
- Варианты
- Свойства
Правильно:

Неправильно:

В неправильном примере пункт меню основан на его технологии.
- Используйте следующие имена пунктов меню для указанной цели:
- Параметры Отображение параметров программы.
- Настроить Отображение параметров программы, связанных с механической конфигурацией пользовательского интерфейса.
- Персонализировать Отображение сводки часто используемых параметров персонализации .
- Предпочтения Не используйте. Вместо этого используйте параметры.
- Вариантов размещения Отображение окна свойств объекта.
- Параметры Не используйте в качестве метки меню. Вместо этого используйте параметры.
Имена подменю
- Элементы меню, отображающие подменю, никогда не имеют многоточия на метки. Стрелка вложенного меню указывает, что требуется другой выбор.
Неправильно:

В этом примере пункт меню Создать неправильно имеет многоточие.
Документация
При обращении к меню:
- В командах, отображающих или скрывающих меню, обратитесь к строкам меню. Не упоминайте их как классические меню.
- Ссылаться на меню по их подписям. Используйте точный текст метки, включая ее прописные буквы, но не включайте символ подчеркивания или многоточия клавиши доступа.
- Чтобы сослаться на категории меню, используйте команду «В меню». Если расположение пункта меню ясно из контекста, вам не нужно упоминание категорию меню.
- Чтобы описать взаимодействие пользователей с элементами меню, используйте щелчок без слова меню или команды. Не используйте функцию выбора, выбора или выбора. Не ссылайтесь на пункт меню как на пункт меню, за исключением технической документации.
- Чтобы описать удаление проверка метки из пункта меню, нажмите кнопку , чтобы удалить метку проверка. Не используйте clear.
- Контекстные меню называются контекстными, а не контекстными меню.
- Не используйте каскадные, раскрывающиеся, раскрывающиеся или всплывающие меню для описания меню, за исключением документации по программированию.
- Элементы меню недоступны как недоступные, неактивные, отключенные или серые. Используйте disabled в документации по программированию.
- По возможности отформатируйте метки, используя полужирный текст. В противном случае поместите метки в кавычки, только если это необходимо для предотвращения путаницы.
- В меню Файл выберите команду Печать , чтобы распечатать документ.
- В меню Вид наведите указатель на пункт Панели инструментов и выберите пункт Форматирование.
Обратная связь
Были ли сведения на этой странице полезными?
Pokki Start Menu что это за программа и нужна ли она?

Всем привет Pokki Start Menu это такая программа, которая исправляет главный глюк Windows 8 — отсутствие меню Пуск. Его просто нет такого, к которому так привыкли пользователи, при том что оно было еще в самых старых версиях Windows! Хотели сделать как лучше, думали что пользователи так просто откажутся от меню Пуск! Но не тут то было, многие разработчики подсуетились и создали свои программы для возвращения меню Пуск. Хорошо, что хотя бы в Windows 10 вернули все обратно
Но тут интересный момент, вот вы может думаете, откуда взялась вообще эта программа Pokki Start Menu?
Так вот, одна компания, а именно SweetLabs заключила договор с мировым производителем Lenovo, чтобы на их ноутбуках под управлением Windows 8, уже шла установленная программа Pokki Start Menu. Это позволит юзерам не думать о проблеме с Пуском, а Lenovo таким завоевала доверие пользователей.
Кстати не такие уж и плохие у них ноуты и цены при этом доступные
Pokki Start Menu вообще изначально не предназначалась для того, чтобы вернуть меню Пуск, это была просто хорошей программкой для быстрого запуска программ с рабочего стола. Это потом уже, кода появилась проблема с отсутствием Пуск, то они добавили возможность его вернуть
Теперь немного рассмотрим это меню от программы Pokki Start Menu, после того как ее установили, в левом углу появится что-то типа кнопки меню Пуск:

Если нажать на эту кнопку, то покажется вот такое меню, вполне удобное со спокойным дизайном:

В меню также можно искать что-то, и может это даже удобнее сделано, чем в Windows 7:

Также вы можете и выйти из Windows или включить комп:

А вот список всех программ:

В меню также есть и Панель управления, можно сразу запустить то, что нужно:

В настройках Pokki Start Menu можно изменить тему на темную:

В итоге будет такое меню:

В общем что можно сказать? Программа Pokki Start Menu свою функцию выполняет хорошо, меню Пуск может и не такое прям как в Windows, но это не означает что оно неудобное. Есть поиск, настройки, удобные значки
Надеюсь, что у меня получилось обьяснить что это за программа Pokki Start Menu. Нужна ли вам эта программа, это уже решать только вам, если у вас Windows 8, то я так понимаю что нужна, ибо с таким меню удобнее, чем с плитками на весь экран.
10 лучших программ для создания меню для ресторанов и баров
В сегодняшней быстрорастущей ресторанной индустрии крайне важно поддерживать конкурентное преимущество. Один из способов сделать это — создать интерактивное меню ресторана, которое будет выделяться. С помощью программного обеспечения для создания меню владельцы ресторанов могут легко разрабатывать и настраивать свои меню в соответствии со своим брендом и стилем. В этой статье мы обсудим 10 лучших программа для создания меню программы для ресторанов и баров.
Лучший Программное обеспечение для создания меню– 1ТП11Т
В ресторанной индустрии привлекательное и информативное меню имеет решающее значение для привлечения клиентов и увеличения продаж. С появлением цифровых меню важно иметь программное обеспечение для создания меню, которое может создавать интерактивные и визуально привлекательные меню. Flip PDF Plus Pro будет первым выбором в качестве мощного программного обеспечения для создания меню:
- Различные варианты настройки: Это включает в себя возможность изменить шрифт, цветовую схему и макет меню. С помощью этих опций владельцы ресторанов могут создавать меню, уникальное для их бренда и стиля.
- Мультимедийные элементы: Сюда входят видео, изображения, GIF-файлы, аудиофайлы, логотипы, гиперссылки и многое другое. Владельцы ресторанов могут создать более привлекательное и интерактивное меню, которое привлечет внимание посетителей.
- Легкая доступность: Этот создатель меню ресторана позволяет владельцам ресторанов создавать интерактивные меню, которые можно просматривать на любом устройстве.
10 лучших программ для создания меню для ваших нужд
1. 1ТП16Т
FlipBuilder — это программа для создания меню с самым высоким рейтингом, которая позволяет владельцам ресторанов с легкостью создавать интерактивные меню ресторана. Благодаря удобному интерфейсу FlipBuilder позволяет легко разрабатывать и настраивать меню, которые являются одновременно привлекательными и информативными. FlipBuilder также предлагает на выбор множество шаблонов и тем, что упрощает создание меню, соответствующего вашему бренду.
2. МенюДрайв
MenuDrive — это программное обеспечение для создания меню, которое позволяет владельцам ресторанов создавать онлайн-меню, которые являются одновременно визуально привлекательными и удобными для навигации. Благодаря удобному интерфейсу и обширной библиотеке шаблонов и графики MenuDrive упрощает создание меню, соответствующего вашему бренду. MenuDrive также предлагает такие функции, как онлайн-заказы и управление доставкой.
3. MenuGem
MenuGem — это программное обеспечение для создания меню, которое позволяет владельцам ресторанов быстро и легко создавать меню. Благодаря интерфейсу перетаскивания и обширной библиотеке шаблонов и графики MenuGem позволяет легко создавать выделяющееся меню. MenuGem также предлагает такие функции, как онлайн-заказ и бронирование столиков.
4. iMenuPro
iMenuPro — это программное обеспечение для составления меню, которое позволяет владельцам ресторанов создавать профессионально выглядящие меню за считанные минуты. Благодаря простому в использовании интерфейсу и обширной библиотеке шаблонов и графики iMenuPro упрощает создание меню, соответствующего вашему бренду.
5. MustHaveМеню
MustHaveMenus — это программное обеспечение для создания меню, которое предлагает множество шаблонов и параметров настройки. Благодаря удобному интерфейсу и обширной библиотеке графики и шрифтов MustHaveMenus позволяет легко создавать меню, которое выделяется.
6. Создатель меню
Menu Maker — это программа для создания меню, которая позволяет владельцам ресторанов быстро и легко создавать меню. Благодаря интерфейсу перетаскивания и обширной библиотеке шаблонов и графики, Menu Maker позволяет легко создавать меню, соответствующее вашему бренду.
7. фото
Foto — это программное обеспечение для создания меню, которое позволяет владельцам ресторанов быстро и легко создавать меню. Благодаря интерфейсу перетаскивания и обширной библиотеке шаблонов и графики, Foto позволяет легко создавать выделяющееся меню. Foto также предлагает такие функции, как онлайн-заказ и бронирование столиков.
8. Магазин дизайна меню
Menu Design Shop — это программное обеспечение для создания меню, которое предлагает множество шаблонов и вариантов настройки. Благодаря удобному интерфейсу и обширной библиотеке графики и шрифтов, Menu Design Shop упрощает создание меню, соответствующего вашему бренду.
9. МенюМакс
MenuMax — это программа для создания меню, которая позволяет владельцам ресторанов быстро и легко создавать меню. Благодаря интерфейсу перетаскивания и обширной библиотеке шаблонов и графики MenuMax позволяет легко создавать выделяющееся меню.
10. МенюSano
MenuSano — это программное обеспечение для создания меню, которое позволяет владельцам ресторанов создавать привлекательные и информативные меню. Благодаря удобному интерфейсу и обширной библиотеке шаблонов и графики MenuSano позволяет легко создавать меню, подходящее для вашего бренда.
Вывод
В целом, владельцам ресторанов доступно множество программ для создания меню. Ищете ли вы удобный интерфейс или расширенные возможности настройки, есть программа, которая удовлетворит ваши потребности. Однако, если вы ищете программное обеспечение для создания меню с самым высоким рейтингом, FlipBuilder определенно стоит рассмотреть. Благодаря обширной библиотеке шаблонов и тем, удобному интерфейсу и расширенным возможностям настройки FlipBuilder является отличным выбором для владельцев ресторанов, которые хотят создать интерактивное меню ресторана, которое будет выделяться.
- Команда Создать, Показать, Просмотреть или Управление. Например, следующие команды не содержат глаголов:
- Исключение: Отключите пункты меню, которые не применяются, если есть разумное ожидание, что они будут доступны: