Что такое контекстное меню?
Содержание:
- Как это делается
- Автоматическое добавление контекстного меню
- Работа обработчиков контекстного меню с динамическими командами
- Использование дополнительных команд контекстного меню
- MenuMaid
- Несуществующий раздел реестра
- Как настроить контекстное меню
- Как добавить дополнительные пункты «Открыть с помощью…» в контекстное меню
- Избавляемся от хлама в меню
- Как добавить программу в контекстное меню Рабочего стола
- Удлинитель правой кнопки мыши
- ContextEdit
- Как нарисовать граф на 1С Промо
- Добавить Windows Terminal в меню правой кнопки мыши
- Установка программы
- Отображение меню
Как это делается
Все манипуляции производятся с системным реестром, поэтому нужен его редактор. Можно использовать системный «Regedit», однако, если не лень «пошерстить» интернет-ресурсы, то лучше скачать портативную утилиту «Registry Workshop». Искать нужно русифицированную сборку (repack), так как в оригинальном виде она идет только на английском, да еще за нее и деньги требуют.Итак, запускаем «Regedit» или «Registry Workshop» и разворачиваем самую верхнюю ветвь в дереве реестра – «HKEY_CLASSES_ROOT» на панели переходов (слева).
Прокручивая список разделов, находим пункт «Directory», который управляет такими объектами как «Директория». В принципе, это то же самое, что и «Папка» (Folder), но по какой-то причине разработчики разделили управление папками на 2 отдельных элемента реестра.В его составе имеется пункт «Background», который переводится как «Задний план» или «Фон», а по сути, означает пустое пространство, не занятое никакими иконками или эскизами.
Далее, переходим к ответвлению «shell». Имя данного объекта говорит само за себя – «оболочка» (так переводится слово) в данном случае является синонимом слова «Проводник Windows» и все команды, которые в нем находятся, отображаются в контекстном меню пустого пространства окон директорий. А так как Рабочий стол тоже принадлежит к категории папок, то и в его контекст-меню они будут присутствовать.
Важно! Не перепутайте с одноименным элементом в составе родительского объекта «Directory». Нам нужен элемент «shell» именно в составе «Background»
Если вдруг, по какой-либо причине его не существует, необходимо таковой создать.
Автоматическое добавление контекстного меню
Если вы программируете с использованием MFC, у вас есть счастливая возможность переложить работу по созданию контекстного меню на среду Visual C++. Для этого откройте окно Project->Add To Project->Components and Controls, а затем выберите компонент Pop-up Menu из папки Visual C++ Components. Появится ещё одно окно, в котором вам предложат выбрать, к какому окну вы хотите добавить контекстное меню, а также идентификатор ресурса меню. Вводите нужные параметры, жмите ОК, и в выбранный класс добавится готовый обработчик OnContextMenu. Кроме этого, в ресурсы вашего приложения добавится новое меню, и вам останется только подредактировать его.
Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы
то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских
прав.
Работа обработчиков контекстного меню с динамическими командами
Помимо IUnknown, обработчики контекстного меню экспортируют следующие дополнительные интерфейсы для обработки обмена сообщениями, необходимого для реализации элементов меню, рисуемых владельцем.
- Ишеллекстинит (обязательный)
- IContextMenu (обязательный)
- IContextMenu2 (необязательно)
- IContextMenu3 (необязательно)
Дополнительные сведения об элементах меню, рисуемых владельцем, см. в разделе создание Owner-Drawn пунктов меню раздела Использование меню.
Оболочка использует интерфейс ишеллекстинит для инициализации обработчика. Когда оболочка вызывает ишеллекстинит:: Initialize, она передает объект данных с именем объекта и указателем на список идентификаторов элементов (Пидл) папки, содержащей файл. Параметр хкэйпрогид — это расположение реестра, в котором зарегистрирован маркер контекстного меню. Метод ишеллекстинит:: Initialize должен извлечь имя файла из объекта данных и сохранить имя и указатель папки в списке идентификаторов элементов (Пидл) для последующего использования. Дополнительные сведения об инициализации обработчика см. в разделе Реализация ишеллекстинит.
Когда глаголы представлены в контекстном меню, они сначала обнаруживаются, затем представляются пользователю, и, наконец, вызываются. В следующем списке приведено более подробное описание этих трех шагов.
- Оболочка вызывает метод IContextMenu:: куериконтекстмену, возвращающий набор команд, которые могут основываться на состоянии элементов или системы.
- Система передает в HMENUный обработчик, который метод может использовать для добавления элементов в контекстное меню.
- Если пользователь щелкает один из элементов обработчика, оболочка вызывает IContextMenu:: инвокекомманд. Затем обработчик может выполнить соответствующую команду.
Использование дополнительных команд контекстного меню
Теперь поговорим о некоторых дополнительных командах. Если привести пример установленного антивируса, можно заметить, что в контекстном меню всегда будут присутствовать строки типа «Сканировать» или «Проверить с помощью…». Согласитесь, очень удобно.
То же самое касается архиваторов, ведь добавить файл (папку) в архив или извлечь его оттуда можно одним щелчком.
Многие проигрыватели мультимедиа ведут себя подобным образом, интегрируя собственные команды в контекстное меню системы. Чаще всего здесь для файлов мультимедиа появляются пункты добавления в плейлист или воспроизведения (видео и аудио), а для графики – это команда просмотра. Вообще, тут все зависит от того, какая именно программа интегрирует в меню собственные командные строки, и какие объекты с ней сопоставлены.
MenuMaid
MenuMaid упрощает жизнь, предлагая вам помощь в удалении нежелательных записей из контекстного меню проводника Windows и Internet Explorer. Это простой в использовании и быстро реагирующий инструмент, который автоматически формирует представление всех записей, найденных в Windows и Internet Explorer в системе.
Особенности:
- Имеет простой и понятный интерфейс, из которого вы можете добавлять / удалять пункты меню всего за пару кликов.
- В Internet Explorer есть контекстное меню, вызываемое одним щелчком правой кнопки мыши, а элементы проводника Windows организованы в группы и разделены на различные категории, чтобы помочь вам легко их найти, например диски, каталоги, элементы меню и папки.
- Возможность выбора элементов для удаления, поиска всех файлов в списке или ручного удаления выбранных записей.
- Легче для использования даже пользователями-любителями.
В целом программа выполняет задачу быстро и без ошибок. В качестве бонуса он использует минимальные системные ресурсы, тем самым улучшая производительность.
Цена: Бесплатное ПО.
Несуществующий раздел реестра
А вы знаете, что мы внесли изменения в несуществующий раздел реестра? Раздел HKEY_CLASSES_ROOT (HKCR) интересен тем, что он отсутствует физически. Под его видом в редакторе реестра отображаются совмещенные разделы:
HKEY_LOCAL_MACHINE\SOFTWARE\Classes HKEY_CURRENT_USER\SOFTWARE\Classes
В HKLM хранятся глобальные параметры для всех пользователей, а в HKCU – параметры текущего пользователя, при этом HKCU преобладает над HKLM. Поэтому разные пользователи могут сопоставлять различные программы одному типу файла. Это дает возможность каждому из них слушать музыку в любимом проигрывателе и путешествовать по Интернету в привычном браузере.
Разработчики Windows позиционируют раздел HKCR для чтения, нежели для записи. Это не значит, что записывать туда данные неправильно. Когда вы вносите изменения в раздел HKCR, они записываются в HKEY_LOCAL_MACHINE\SOFTWARE\Classes. Это легко проверить – удалите созданный раздел Editor из HKLM, и он пропадет из HKCR.
Через пару дней я покажу, как разными способами создать в контекстном меню аналогичный пункт для открытия файла в программе с правами администратора. Я также рассмотрю вопрос одновременного открытия нескольких файлов в программах, использующих вкладки для их отображения.
А у вас текстовый редактор интегрирован в контекстное меню? Какой редактор вы предпочитаете и почему?
Как настроить контекстное меню
Редактировать данный выпадающий список рекомендуется с использованием встроенных инструментов. Отчасти эта рекомендация объясняется тем, что внесение подобных изменений может негативно сказаться на работе Windows 10. Использование встроенных инструментов позволяет в случае возникновения сбоев откатить систему в предыдущее состояние.
Сторонние программы для редактирования списка не всегда эффективны. А некоторые подобные приложения содержат вирусы.
При такой настройке необходимо точно прописать соответствующие команды там, где это нужно. Из-за ошибок в коде отредактировать списки не удастся.
Убираем пункты из контекстного меню
Ряд приложений, устанавливаемых на компьютер, добавляет собственные пункты в это меню. В итоге последнее может разрастись до больших размеров. Кроме того, некоторые пункты в выпадающем списке пользователь никогда не использует. Поэтому в подобных ситуациях возникает необходимость в удалении части разделов из списка.
Сделать это можно несколькими способами. Чтобы изменить список меню, нужно:
- Запустить соответствующее приложение.
- Перейти в раздел с настройками (установками и так далее — все зависит от особенностей программы).
- Открыть вкладку, на которой будет приведен список с итерациями с оболочкой операционной системой.
- Снять флажок напротив строчки типа «Вложенные контекстные меню».
Но этот вариант не подходит для некоторых приложений, в настройках которых отсутствует указанный путь. В подобных случаях нужно отредактировать реестр Windows.
Редактирование при помощи реестра
Редактор реестра применяется для внесения изменений в корневые процессы Window
То есть проводить манипуляции с этим инструментом необходимо осторожно. Прежде чем приступать к редактированию, рекомендуется создать новую точку сохранения системы, чтобы потом, при возникновении ошибок, откатить Windows назад
Чтобы удалить пункт из контекстного меню через реестр, нужно сочетанием клавиш «Win» и «R» вызвать диалоговое окно, в котором нужно прописать «regedit». Затем в новом разделе нужно найти запись меню, которую необходимо удалить.
Сначала поиск следует вести с раздела HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers\. После этого нужно перейти на директории:
- HKEY_CLASSES_ROOT\AllFileSystemObjects\ShellEx\ContextMenuHandlers
- HKEY_CLASSES_ROOT\*\shell
- HKEY_CLASSES_ROOT\Directory\Background\shell
- HKEY_CLASSES_ROOT\Directory\Background\shellex\ContextMenuHandlers
- HKEY_CLASSES_ROOT\Folder\shellex\ContextMenuHandlers\
- HKEY_CLASSES_ROOT\Directory\shell
Проверка по нескольким разделам осуществляется потому, что удаляемые пункты появляются в выпадающем меню, которое всплывает при нажатии на Рабочий стол, папки, файлы и так далее. Найдя нужный элемент, необходимо кликнуть правой клавишей мыши и удалить.
Как убрать пункты с помощью специальных утилит
Для удаления пунктов применяются следующие бесплатные утилиты:
- Easy Context Menu;
- Filemenu Tools;
- Right Click Enhancer.
Для настройки меню с помощью первой утилиты нужно:
- Запустить программу и перейти в раздел «Редактор списка команд».
- Открыть раздел «Чистка контекстного меню».
Выбрать пункт для удаления из появившегося списка.
Вторая программа отличается расширенным функционалом, позволяющим вносить тонкие настройки. Третье приложение не отличается от первого. Недостаток таких утилит заключается в том, что эти программы периодически не сохраняют внесенные настройки. Поэтому редактировать контекстное меню приходится несколько раз.
Добавляем пункты в контекстное меню с помощью утилиты
Отредактировать меню можно путем добавления новых пунктов. Сделать это можно, задействовав приведенные выше утилиты. Для добавления нового элемента необходимо через раздел «Файл» запустить редактор списка команд. В утилите Easy Context Menu последний запускается сочетанием клавиш «Ctrl» и «E».
В новом разделе нужно нажать на «Добавить команду». В открывшемся окне необходимо найти файл с расширением .exe, который запускает приложение. В завершении следует сначала сохранить, а затем — применить внесенные изменения.
Как добавить дополнительные пункты «Открыть с помощью…» в контекстное меню
У многих пользователей часто возникают трудности, когда приходится часто открывать множество файлов с различными расширениями при помощи разных приложений. Можно конечно каждый раз запускать необходимую программу и уже в его меню открывать нужный файл, но далеко не всегда это удобно. К примеру вам необходимо открыть документ с не .txt расширением в блокноте, для этого вам придется запустить блокнот и уже потом выбрать нужный документ.
Для того, чтобы добавить эту опцию, нам необходимо лишь изменить несколько параметров реестра Windows.
- Нажмите на Пуск и в строке поиска введите «regedit» или просто воспользуйтесь комбинацией «Win» и «R» и выполните эту команду.
- В редакторе реестра воспользуйтесь иерархическим древом в левой части окна, чтобы найти путь «HKEY_CLASSES_ROOT*shell».
- Далее, нажмите правым кликом на каталог «shell» и выберите Создать > Новый раздел, назовите его к примеру «Открыть при помощи Блокнота». Именно эту строку вы будете видеть в контекстном меню, она может быть произвольной, на ваше усмотрение.
- Нажмите вновь правым кликом на только, что созданном каталоге и создайте новый раздел с именем «command», тут уже надо полностью соблюсти написание строки.
- Выберите раздел «command», в правой части экрана нажмите двойным кликом на строку «(Default)».
- Измените «Значение» на «notepad.exe %1», где notepad.exe — это исполняемый файл для стандартного блокнота Windows.
После того, как вы выполните все вышеописанные действия, изменения вступят в силу моментально, попытайтесь нажать правым кликом любом файле, вы увидите новый пункт «Открыть при помощи Блокнота».
Блокнот был взят лишь для примера, вы можете создать по аналогии сколь угодно много дополнительных опций для различных программ, к примеру для открытия редактора фото или для проигрывания мультимедиа в различных проигрывателях. Для этого достаточно лишь создать дополнительный раздел в папке «shell» реестра, а далее следовать уже описанным инструкциям, заменив «notepad» на путь необходимой программы, к примеру — «D:UtilsMediafoobar200.exe %1».
Рассмотрим еще одну проблему связанную с контекстным меню. Как мы упоминали в начале статьи, многие программы добавляют свою опцию «Открыть при помощи» или «Изменить при помощи», но при удалении данных программ, довольно часто упоминание об этом приложении остается в контекстном меню. Чтобы их удалить, немного видоизменим уже описанную инструкцию.
- Воспользуйтесь редактором реестра regedit, как было описано вышеописанные.
- Перейдите в каталог «HKEY_CLASSES_ROOT*».
- Теперь вместо папки «shell», откройте папку с похожим названием «shellx».
- Перейдите в под-каталог «ContextMenuHandlers».
- Если вы часто устанавливаете разные приложения, вы скорее всего увидите в этой папке множество директорий.
- Найдите папку, которая соответствует пункту который вы хотите убрать, нажмите на неё правым кликом и выберите «Удалить».
Опция будет моментально удалена из списка. Лучше всего удалять ненужные вам ярлыки, чтобы оставить место для действительно используемых приложений.
Избавляемся от хлама в меню
Уборку контекстного меню можно провести вручную через реестр, однако задача эта нетривиальна, поскольку записи разбросаны по разным местам. Кроме того, далеко не всегда легко идентифицировать подходящий ключ реестра. К примеру, драйверы Intel регистрируются через сокращение «igfx». Записи в реестре рассеяны по ветке «HKEY_CLASSES_ROOT» в папках «shell» или «shellex», где содержится папка под названием «ContextMenuHandlers», также включающая в себя отдельные параметры.
Бесплатная утилита ShellExView составит единый список всех этих строчек реестра. Даже на относительно свежей системе их количество может превышать 250. Чтобы в них не потеряться, после запуска программы записи следует сначала отсортировать. Дело пойдет на лад, если щелкнуть в верхней части окна по строчке «type». Таким образом вы сразу же увидите все возможные записи в реестре, относящиеся, например, к «Context Menu». Но будьте внимательны: вместе с ними утилита отобразит строчки из Windows Shell, к которым лучше не прикасаться.
Сортировку можно провести и по параметру «Company». В этом случае результаты будут располагаться в алфавитном порядке — созданные системой и обозначенные как «Microsoft» записи легко отличить от остальных. Вы можете здесь, к примеру, выделить соответствующий «igfxDTCM Module» и отключить его кликом по красной точке вверху на панели меню. После этого запись о (практически бесполезных) графических параметрах драйвера Intel исчезнет из контекстного меню. Однако для применения системой таких настроек необходимо сначала выйти из системы, а затем снова зайти. Как вариант, вы можете через Диспетчер задач отключить «explorer.exe», а затем снова вызвать эту службу.
Как добавить программу в контекстное меню Рабочего стола
Сейчас мы посмотрим, как добавить приложение или системное средство в контекстное меню Рабочего стола. Предположим, нам часто требуется запустить Панель управления, для выполнения настроек компьютера. Поэтому нам нужно добавить соответствующий пункт в контекстное меню Windows 10.
Выполните следующие действия:
- Откройте редактор реестра на компьютере.
- Пройдите по пути:
HKEY_CLASSES_ROOT\DesktopBackground\Shell
- Щелкните два раза левой кнопкой мыши по «Shell», в контекстном меню выберите сначала «Создать», а затем «Раздел».
- Задайте любое имя разделу буквами латинского алфавита, можно с цифрами. Пускай на этом примере будет «New1».
- Кликните правой кнопкой мыши по свободному месту внутри раздела, выберите «Создать» → «Строковый параметр».
- Присвойте имя параметру «MUIverb». Это обязательный параметр, который необходим для отображения имени команды в меню.
- Щелкните по параметру правой кнопкой мыши, выберите «Изменить…».
- В окне «Изменение строкового параметра», в поле «Значение:» напишите «Панель управления» или свой вариант, нажмите на кнопку «ОК».
В данном разделе можно создать несколько необязательных параметров:
- Icon — для отображения значка системного средства или программы в контекстном меню.
- Position — место расположения пункта в списке контекстного меню. Если не задать этот параметр, данная позиция окажется в центре меню. Можно задать значения «Top» (вверху) или «Botton» (внизу).
- Extended — при наличии этого параметра пункт контекстного меню отображается только при нажатой клавиши «Shift».
Если нужно, для добавления значка программы или системного инструмента создайте строковый параметр «Icon». В поле значение нужно ввести путь до исполняемого файла или путь до «dll» (динамически подключаемой библиотеки) и номер значка (ресурса).
В случае с панелью управления, можно указать «imageres.dll,22» (стандартный значок с номером ресурса), или путь до файла «control.exe». Поскольку панель управления находится в системной папке Windows, можно указать только имя файла, без полного пути. В других случаях указывайте полный путь к исполняемому файлу. Для инструментов из системных папок также можно указывать полный путь к файлу.
Если необходимо, измените позицию пункта в меню.
- В разделе «New1» создайте раздел «command».
- В разделе «command» щелкните правой кнопкой мыши по параметру «(По умолчанию)», в открывшемся меню нажмите на «Изменить…». Создание этого раздела необходимо для запуска приложения.
- В поле значение введите полный путь до исполняемого файла данного приложения, в нашем случае «C:\Windows\System32\control.exe», или просто «control.exe», потому что файл панели управления находится в системной папке Windows.
В итоге, в Редактор реестра были добавлены следующие параметры, которые отображаются на этом изображении.
Если щелкнуть правой кнопкой мыши по свободному месту на Рабочем столе, откроется контекстное меню, в которое добавлен пункт для быстрого запуска Панели управления.
Подобным способом в контекстное меню можно добавить другие программы.
Удлинитель правой кнопки мыши
Right-Click Extender — еще один отличный редактор контекстного меню от The Windows Club, это бесплатный инструмент, который позволяет вам включать некоторые важные записи в контекстное меню вашей системы.
Особенности:
- Позволяет добавлять / удалять различные дополнительные записи в контекстное меню диска, компьютера, файла, папки или рабочего стола.
- Вы можете добавить несколько записей в контекстное меню, например, панель управления, дефрагментацию диска, командную строку и т. Д.
- Он также создает резервную копию реестра HKEY_CLASSES_ROOT и HKEY_CURRENT_USER, когда вы запускаете его в первый раз, с возможностью его восстановления.
- Он имеет простой и понятный интерфейс для работы с четырьмя основными категориями: файл / папка, рабочий стол, диски и мой компьютер.
- Предлагает возможность включения значков рядом с доступными параметрами меню.
- Вам также разрешено включать записи в скрытое меню (просмотрите это, нажав «Shift + щелчок»), а также создаст резервную копию создания реестра (определяемого пользователем).
- Он также создает точку восстановления системы до того, как будут внесены какие-либо изменения.
- Свобода при необходимости восстанавливать резервную копию и откатывать изменения с помощью точки восстановления системы.
Он работает с Windows 7, а также с Windows 8 и Windows 10.
Цена: Бесплатное ПО.
ContextEdit
Спасите контекстное меню вашей системы от захламления бесполезными записями с помощью ContextEdit. Это простое и полезное приложение поможет вам легко добавлять элементы контекстного меню для каждого расширения.
Особенности:
- Простой и понятный интерфейс.
- Он позволяет добавлять / удалять новые элементы всего за пару кликов.
- Позволяет просматривать существующие ассоциации файлов и проверять команды оболочки вместе с обработчиками в одном окне.
- Легко настроить команды.
- Это позволяет работать как с типами файлов, так и с расширениями.
Это один из самых продвинутых редакторов контекстного меню в категории, который дает возможность изменять даже самые важные разделы.
Цена: Бесплатное ПО.
Как нарисовать граф на 1С Промо
Описывается реализация на языке запросов 1С метода расположения вершин графа на плоскости, основанного на использовании электромеханической аналогии. При этом вершины графа представляются одноименными электрическими зарядами, дуги — пружинками. Силы взаимодействия вершин в этой системе переводят их из случайного начального в нужное конечное положение. Приведена обработка рисования графов «ГрафОграф», реализующая данный подход, показывающая также динамику процесса. Граф можно задать списком ребер вручную, выбрать из нескольких предопределенных примеров или сформировать по данным информационной базы.
1 стартмани
Добавить Windows Terminal в меню правой кнопки мыши
s http-equiv=»Content-Type» content=»text/html;charset=UTF-8″>tyle=»clear:both;»>
В Windows есть много программ командной строки, таких как CMD и PowerShell. Microsoft запустила программу командной строки для Windows 10 на выставке Build 2019. Эта программа объединяет PowerShell, CMD и подсистему Windows для Linux в Windows. Она решает множество жалоб и даже называется Windows. Спаситель командной работы. Еще когда была выпущена предварительная версия, я уже скачал и использовал ее, и теперь это мой основной инструмент командной строки. Однако, в конце концов, это все еще опытная версия, поэтому она не интегрирована в контекстное меню. После долгих поисков я наконец нашел способ установки на Github.
Установка программы
Терминал Windows все еще находится в состоянии предварительного просмотра, мы можем загрузить и установить его в Microsoft Store. Конечно, те, кто способен, могут скачать код Github и скомпилировать его самостоятельно.
Тестовая переменная
Следующие две переменные необходимо использовать в следующих операциях. Итак, сначала проверьте, нормально ли это.
В случае ошибки замените соответствующую деталь при следующей операции.
Заменить Заменить
заметка Для собственного имени пользователя
image
Создать иконку
Загрузите значок из
Значок ico скачать , Откройте сайт и правой кнопкой мыши сохраните его на компьютер.
Откройте командную строку и введите
Эта команда предназначена для созданияПапка, скопируйте скачанный значок ico в эту папку.
Написать в реестр
Создайте файл txt и измените суффикс файла на. Название документа можно придумать самостоятельно, и суффикс не может быть неправильным. Появится контекстное менюЕсть два пути. Один — нажать+ , Другой прямой。
Скопируйте следующий контент в reg
заметка:ПожалуйстаИзмените имя пользователя на свой компьютер
Щелкните правой кнопкой мыши
Скопируйте следующий контент в reg
заметка:ПожалуйстаИзмените имя пользователя на свой компьютер
модифицироватьиз
включить
image
ПоложитьЧтобы, Создайте его сами, если у вас его нет.
image
Следуйте описанному выше методу и убедитесь, что появилось контекстное меню.Вход наверх.
image
Справка
- Ответ Yanglr в разделе «Добавить« открыть терминал Windows здесь »в контекстное меню, вызываемое правой кнопкой мыши»
Интеллектуальная рекомендация
С быстрым развитием Интернета он вступил в эру больших данных. С развитием цифровой экономики часто возникали такие проблемы, как безопасность сети и безопасность данных. В эпоху цифровой экономики во…
1 Файловые команды 1.1 Формат команды 1.2 Команда обработки каталогов ls 1.3 ls -a просмотреть все файлы 1.4 ls -l 1,5 разрешения 1.6 ls -ld Просмотр подробной информации указанного каталога 1.7…
Если вы используете рекурсию, памяти будет недостаточно. Этот вопрос касается мода, поэтому значение каждой функции фиксировано только на нескольких значениях: 0, 1, 2, 3, 4, 5, 6. И значение AB фикси…
Титульная ссылка:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=5423 Намерение: дать вам n, k (n <= 1e9, n <= 2 ^ k <= 2 ^ …
Инкапсуляция данных Инкапсуляция UDP Инкапсуляция TCP Инкапсуляция IP Алгоритм контрольной суммы Когда приложение использует TCP для передачи данных, данные передаются в стек протоколов, а затем прохо…
Вам также может понравиться
Введите случайные числа: 1. удар Требования к теме: Требования: 1. Введите удар, который нужно вывести из камня консоли (1) / ножниц (2) / ткани (3) 2. Компьютер сразу пробивает — сначала предположим,…
Один, Весна 1. Поговорите о контейнере IOC и внедрении зависимостей DI в Spring Ответ: Контейнер IOC в Spring является инверсией управления. Например, до использования Spring, когда мы использовали об…
5. Три способа импорта JS Затем, во-первых, объедините код, чтобы объяснить три метода импорта JS Используемая здесь часть 5-import.js имеет следующий код Затем мы объединяем код и говорим о 4 …
Один: общие шаблоны и инструменты Изучите технологическую систему Java, шаблоны проектирования, популярные фреймворки и компоненты —— Общие шаблоны проектирования, необходимые для кодирова…
Volatile Qualifier: Пока он подчиняется функции барьера памяти (функция барьера памяти) и семантике упорядочения памяти семантики видимости памяти, компилятор может оптимизировать операции чтения и за…
Отображение меню
Для отображения контекстного меню в Win32 API предусмотрена функция TrackPopupMenu(Ex). В MFC ей соответствует функция CMenu::TrackPopupMenu. Все эти функции выполняют следующие действия: отображают контекстное меню в заданной точке экрана, запускают собственный цикл сообщений, в котором отслеживают выбор пользователя, а в конце, когда пользователь выбрал какой-то пункт или закрыл меню, уведомляют программу о его выборе.
Рассмотрим прототип функции TrackPopupMenu.
BOOL TrackPopupMenu( HMENU hMenu, // хэндл всплывающего меню UINT uFlags, // опции int x, // горизонтальная позиция int y, // вертикальная позиция int nReserved, // зарезервированный параметр, д. б. 0 HWND hWnd, // хэндл окна-владельца меню CONST RECT *prcRect // параметр игнорируется ); |
Параметр hMenu определяет всплывающее меню, которое следует отобразить. Параметры x и y задают положение меню на экране, а hWnd — окно, которое будет получать все сообщения от меню (этот параметр не может быть равен NULL). Параметры nReserved и prcRect не используются. Что касается опций, их полный список можно найти в документации
Я хочу обратить ваше внимание только на флаг TPM_RETURNCMD. Если он не задан, программа получит уведомление о выборе пользователя в виде сообщения WM_COMMAND
Если же его задать, функция TrackPopupMenu просто вернёт в программу идентификатор выбранного пользователем пункта меню, не отправляя никаких сообщений.