- Что такое контекстное меню на компьютере с Windows 7 или Windows 10
- Что такое контекстное меню
- Как открывается контекстное меню
- Как изменить контекстное меню в Windows 10 или Windows 7
- Что такое контекстное меню в Excel или Word
- Лекция 3 Контекст устройства Понятие контекста устройства
- Контекст устройства
Что такое контекстное меню на компьютере с Windows 7 или Windows 10
На сайтах с инструкциями по настройке операционной систем Windows 7 или Windows 10 можно встретить такой термин как контекстное меню. Обычно пользователям рекомендуют открыть это меню и выполнить какую-то команду. Но, далеко не все знают, что такое контекстное меню и как оно открывается. В данной статье мы постараемся закрыть этот пробел, разобрав эту тему максимально подробно.
Что такое контекстное меню
Контекстное меню – это часть графического интерфейса программы или операционной системы, которая представляет собой список команд, относящийся к выбранному пользователем элементу. Контекстное меню изначально скрыто и появляется только после запроса пользователя. Обычно с его помощью выполняются команды, которые так или иначе изменяют или управляют выбранным пользователем элементом программы, операционной системы или рабочего окружения.
Классическими командами для контекстного меню являются команды: копировать, вставить, вырезать, переименовать, обновить, свойства. Такие команды можно встретить в любой программе или операционной системе. Но, конкретный список доступных команд зависит от конкретной программы, ситуации и выбранного пользователем элемента. Во многих случаях список команд является вложенным. Например, команда «Сортировать» может открывать дополнительное меню с разными типами сортировки.
Внешний вид контекстного меню практически не отличается в зависимости от программы или операционной системы. Это вертикальный список команд, который открывается в выбранной пользователем точке. Стандартным способом открытия контекстного меню является клик правой кнопкой мыши. Этот вариант самый распространенный и используется большинством пользователей. Но, существуют и другие способы, которые мы рассмотрим чуть ниже.
Как открывается контекстное меню
Как мы уже сказали, самый распространенный способ открытия контекстного меню – это клик правой кнопкой мышки . Данный способ очень удобен, так как пользователь может выбрать элемент или точку на экране.
Но, есть и другие способы открытия контекстного меню. Например, можно просто нажать на кнопку контекстного меню на клавиатуре . Данная кнопка находится левее правого CTRL и очень редко используется пользователями.
Также контекстное меню может вызываться при помощи комбинаций клавиш. В операционных системах Windows и Linux для этого используется комбинация Shift-F10 .
В других операционных системах могут использоваться другие комбинации клавиш. Например, в OS X нужно зажать Ctrl и кликнуть мышкой.
Как изменить контекстное меню в Windows 10 или Windows 7
В некоторых случаях список команд, который доступен в контекстом меню, можно изменять под собственные нужды. Например, вы можете изменить контекстное меню операционной системы Windows 10. Для этого нужно отредактировать реестр Windows либо воспользоваться специальными программами. Одной из таких программ является ShellMenuView от NirSoft. С помощью этой программы можно просмотреть список всех команд и отключить те, которые вам не нужны.
Также для этой цели можно использовать такие программы как Winaero Tweaker или Context Menu Tuner.
Что такое контекстное меню в Excel или Word
Многих пользователей интересует, что такое контекстное меню в Excel или Word. На самом деле контекстное меню в этих программах принципиально ничем не отличается от описанных выше случаев. Это все тот же вертикальный список команд, который открывается правой кнопкой мышки или комбинациями клавиш.
В программах Excel и Word можно выполнить копирование и вставку текста, а также другие операции типичные для текстовых и табличных редакторов.
Лекция 3 Контекст устройства Понятие контекста устройства
Одним из основополагающих понятий в ОС Windows является понятие контекста. Контекст является объектом операционной системы посредством которого осуществляется вывод информации на внешнее устройство (монитор, принтер и т.п.). Рассмотрим это понятие более подробно на примере вывода графической информации на экран монитора.
Традиционно сложилась следующая схема вывода (рис. 3.1.).
Рис 3.1. Порядок графического вывода в ОС MS DOS
Программа формирует графическое изображение путем записи в видео памяти соответствующей информации. При этом программа должна учитывать графический режим (текстовый или графический), тип адаптера (CGA, VGA, SVGA и т.п.), а также особенности конкретной видео карты, которая преобразует информацию из видео памяти в RGB сигналы, передаваемые на монитор.
Данная схема хорошо работает в случае однозадачного режима, когда адресным пространством видео памяти владеет только одна программа. Поэтому, эта схема получила распространение в ОС типа MS DOS.
В случае многозадачной ОС ситуация несколько другая. Одновременно графический вывод могут осуществлять несколько программ, причем, так как они не зависят друг от друга, они не должны задумываться о состоянии видео памяти и режимах других программ. Более того, в силу рассмотренных в первой лекции свойств ОС, программа должна быть независимой от аппаратной части (в данном случае – видео карты), то есть формировать изображение без учета формата данных в видео памяти. В связи с этим между программой и видео памятью было введено некоторое промежуточное звено, получившее название контекста.
Контекст – структура данных, формируемая операционной системой, хранящая информацию о параметрах и характеристиках устройства вывода, посредством которого программа осуществляет графический вывод информации. Благодаря введению контекста процесс вывода информации изменился и имеет следующий вид (рис. 3.2):
Рис. 3.2. Схема графического вывода в ОС WINDOWS
Каждая программа получает в свое расположение собственный контекст и осуществляет в него вывод изображения. Таким образом, программа может не заботиться о согласовании с другими программами (эту функцию выполняет операционная система). Кроме этого, в этом случае программа рисует в виртуальные координаты (начиная с координаты 0;0), а операционная система перемещает изображение окна уже в физические координаты. Поэтому, программе не нужно заботится о положении окна на экране монитора.
Введение некоторого логического «буфера» между программой и видео памятью позволило решить еще очень важную проблему – аппаратной независимости программного обеспечения. Контекст является строго стандартизированной структурой данных и, более того, АРI содержит стандартный набор функций работы с ним (считается, что все программы осуществляют графический вывод только с использованием этих функций). Сопряжение логического рисунка (в контексте) с конкретной видео картой осуществляется самой операционной системой на основе установленных драйверов. Тем самым достигается, что на любом компьютере (на котором установлена WINDOWS) изображение будет выглядеть так же.
Программная модель контекста
В программе (см. Лекцию 2) контекст представлен своим описателем и объявляется следующим образом:
Для того, чтобы начать работу с контекстом, необходимо его получить у операционной системы. Следует отметить, что контекст лучше запрашивать только в момент графического вывода (так как на поддержание контекста требуется оперативная память и время работы ОС), и сразу же закрывать его после завершения рисования. Существует два способа получения контекста, отличающихся функциями АРI, которые для этого используются.
hdc = BeginPaint(hWnd, &ps); // Начать графический вывод
EndPaint(hWnd, &ps); // Закончить графический вывод
hdc = GetDC(hWnd); // Начать графический вывод
ReleaseDC(hWnd, hdc); // Закончить графический вывод
Разница между первым и вторым способом будет пояснена ниже.
Параметр hWnd – описатель того окна, в котором требуется перерисовка. Описатель контекста позволяет программе рисовать только в пределах клиентской области окна, описатель которого использовался при его создании. В каждом окне выделяют несколько областей:
рабочая область – вся область, занимаемая окном на экране;
неклиентская область – включает стандартные элементы окна, которые, в общем случае, отрисовываюся операционной системой: рамка, строка заголовка, кнопки закрыти, минимизации и т.п., меню;
клиентская область – вся оставшаяся от неклиентской рабочая область окна.
Описатель контекста используется во всех функциях, связанных с графическим выводом. Приведем примеры функций, непосредственно связаных с рисованием:
Rectangle(hdc, 20, 20, 100, 300);// рисует прямоугольник с указанными координатами верхней левой и нижней правой точками;
Ellipse(hdc, 20, 20, 100, 300); // рисует эллипс, вписанный в прямоугольник с указанными координатами;
LineTo(hdc, 20, 20); // рисует линию из текущих координат пера в указанные (понятие пера будет раскрыто позже в этой лекции).
Как видно из приведенных примеров, первый параметр у всех графических функций – описатель контекста устройства.
Контекст устройства
Контекст устройства – это внутренняя структура данных, которая определяет набор графических объектов и ассоциированных с ними атрибутов, а также графических режимов, влияющих на вывод. С точки зрения программы контекст устройства является связующим звеном между программой и устройством вывода. Когда программе нужно осуществить обмен с внешним устройством, то программа должна оповестить GDI о необходимости подготовить устройство для операции ввода-вывода. После того, как устройство подготовлено программа получает хендл контекста устройства, то есть хэндл структуры, содержащей набор характеристик этого устройства. Контекст устройства содержит много атрибутов, определяющих поведение функций GDI. Благодаря этому списки параметров функций GDI содержат только самую необходимую информацию, например начальные координаты или размеры графического объекта. Всё остальное система извлекает из контекста устройства. В набор характеристик этого устройства входят следующие графические объекты:
1) Перо (pen) для рисования линий;
2) Кисть (brush) для заполнения фона или заливки фигур;
3) Растровое изображение (bitmap) для отображения в указанной области окна;
4) Палитра (palette) для определения набора доступных цветов;
5) Шрифт (font) для вывода текста;
6) Регион (region) для отсечения области вывода.
Windows – программа напрямую не обращается к контексту устройства, она обращается к нему через определённые функции. После того, как все действия произведены и необходимость в использовании устройства отпала, программа должна освободить контекст устройства, чтобы не занимать память. Если контекст устройства не будет освобождаться после операций вывода, то через несколько перерисовок окна система может зависнуть.
Когда программа требует контекст устройства, она получает его уже с заполненными значениями по умолчанию. Объект в составе контекста называется текущим объектом. Программа может получить характеристики текущего устройства, но изменить эти характеристики можно только через замену объекта.
В Windows поддерживаются следующие типы контекстов устройств:
1) контекст дисплея;
2) контекст принтера;
3) контекст в памяти (моделирует в памяти устройство вывода);
4) информационный контекст (служит для получения данных от устройства).
При выводе информации на дисплей Windows оперирует с несколькими типами регионов:
1) Обновляемый регион (недействительный регион) – часть окна, которая требует обновления после возникновения тех или иных событий.
2) Видимый регион – часть окна, которую в данный момент видит пользователь. Система изменяет видимый регион окна, когда окно изменяет размеры, и в том случае, когда перемещение другого окна либо закрывает часть данного окна, либо открывает закрытую прежде часть;
3) Регион отсечения ограничивает область внутри которой система разрешает отображение графической информации. Когда приложение получает контекст устройства при помощи функции BeginPaint, система устанавливает регион отсечения путём пересечения видимого региона и обновляемого региона. Если при создании окна функцией CreateWindow был использован стиль WS_CLIPCHILDREN WS_CLIPSIBLINGS, то из видимого региона исключаются любые дочерние или “сестринские» окна, при этом рисование не затрагивает отображаемые области таких окон.
Отсечение (clipping) — процесс ограничения вывода региона или пути в пределах рабочей области окна прикладной программы.
Отсечение используется приложениями различными способами. Приложения обработки текстов и электронных таблиц отсекают ввод данных с клавиатуры, чтобы воспрепятствовать ему появляться на полях страницы или электронной таблицы. Приложения автоматизированного проектирования (CAD) и рисования отсекают вывод данных графики, чтобы воспрепятствовать ему переписывать края чертежа или картины.
Регион отсечения — это один из графических объектов, который приложение может выбрать в контекст устройства (DC). Он является обычно прямоугольным. Некоторые контексты устройства обеспечивают предопределенный или по умолчанию регион отсечения, в то время как другие этого не делают. Например, если Вы получаете дескриптор контекста устройства от функции BeginPaint, то контекст устройства (DC) имеет в своем составе предопределенный прямоугольный регион отсечения, соответствующий недействительному прямоугольнику, который требует перерисовки. Однако, когда Вы получаете дескриптор контекста устройства, вызывая функцию GetDC со значением параметра hWnd ПУСТО (NULL), или вызываете функцию CreateDC, контекст устройства (DC) не содержит регион отсечения по умолчанию.
Приложения могут выполнить ряд операций с регионами отсечения. Некоторые из этих операции требуют дескриптора, идентифицирующего регион, а некоторые этого не требуют. Например, приложение может выполнить следующие операции непосредственно с регионом отсечения контекста устройства.
Определить, появляется ли вывод данных графики в пределах границ региона, передавая координаты соответствующей линии, дуги, точечного рисунка, текста или закраски фигуры в функцию PtVisible.
Определить, не совпадает ли часть рабочей области с регионом, вызывая функцию RectVisible.
Переместить существующий регион на указанное смещение, вызывая функцию OffsetClipRgn.
Исключить прямоугольную часть рабочей области из текущего региона отсечения, вызывая функцию ExcludeClipRect.
Объединить прямоугольную часть рабочей области с текущим регионом отсечения, вызывая функцию IntersectClipRect.
После получения дескриптора, идентифицирующего регион отсечения, приложение может выполнить любую операцию, которая является обычной для регионов, типа:
Объединить копии текущего региона отсечения со вторым регионом, вызывая функцию CombineRgn.
Сравнить копию текущего региона отсечения со вторым регионом, вызывая функцию EqualRgn.
Определить, находится ли пункт в пределах внутренней области копии текущего региона отсечения, вызывая функцию PtInRegion.
Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет