Оконная технология windows это

Обновлено: 02.07.2024

Казалось бы, что WinAPI уходит в прошлое. Давно уже существует огромное количество кросс-платформенных фреймфорков, Windows не только на десктопах, да и сами Microsoft в свой магазин не жалуют приложения, которые используют этого монстра. Помимо этого статей о том, как создать окошки на WinAPI, не только здесь, но и по всему интернету, исчисляется тысячами по уровню от дошколят и выше. Весь этот процесс разобран уже даже не по атомам, а по субатомным частицам. Что может быть проще и понятнее? А тут я еще…

Но не все так просто, как кажется.

Почему о WinAPI сейчас?

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

Здесь я не зря дал ссылку на репозиторий, т.к. видно, что ребята столкнулись с проблемой, о которой речь пойдет ниже, но так и не решили ее.

О чем это я? А вот об этом кусочке кода:

Ответ такой: так делать нельзя!

И, возвращаясь, к изначальному вопросу о WinAPI: очень много популярных, и не очень, проектов продолжают его использовать и в настоящее время, т.к. лучше, чем на чистом API многие вещи не сделать (тут можно бесконечно приводить аналогии вроде сравнения высокоуровневых языков и ассемблера, но сейчас не об этом). Да и мало ли почему? Просто используют и все тут.

О проблеме

Обойти такие мелкие неприятности просто. Есть, как минимум, два вполне легальных способа:

Tutorials?


Здесь действительно все просто:

Because the return value can be nonzero, zero, or -1, avoid code like this:

И ниже приводится пример правильного цикла.

Стоит сказать, что в шаблонах VS для Win32 приложений, написан именно такой неправильный цикл. И это очень печально. Ведь мало кто будет вникать в то, что сделали сами авторы, ведь это априори правильно. И неправильный код множится вместе с багами, которые очень сложно отловить.

После этого фрагмента кода, как правило, следует рассказ про акселераторы, и добавляется пара новых строчек (учитывая замечание в MSDN, предлагаю сразу писать правильный цикл):


Этот вариант я видел чаще всего. И он (та-дам) снова неправильный!

Сперва о том, что изменилось (потом о проблемах этого кода):

Ясно, что TranslateAccelerator надо вызывать для нашего созданного окна:


И вроде все хорошо и замечательно теперь: мы разобрали все детально и все должно работать идеально.

И снова нет. :-) Это будет работать правильно, пока у нас ровно одно окно — наше. Как только появится немодальное новое окно (диалог), все клавиши, которые будут в нем нажаты оттранслируются в WM_COMMAND и отправляться куда? И опять же правильно: в наше главное окно.

На этом этапе предлагаю не городить костылей по решению этой тупиковой ситуации, а предлагаю рассмотреть вещи, которые уже реже (или почти не встречаются) в туториалах.

IsDialogMessage

На самом деле, делает она чуть больше, чем следует из названия. А именно:

  • Осуществляет навигацию по дочерним контролам кнопками Tab/Shift+Tab/вверх/вниз/вправо/влево. Плюс еще кое-что, но этого нам достаточно
  • По нажатии на ESC формирует WM_COMMAND( IDCANCEL )
  • По нажатии на Enter формирует WM_COMMAND( IDOK ) или нажатие на текущую кнопку по умолчанию
  • Переключает кнопки по умолчанию (рамочка у таких кнопок чуть ярче остальных)
  • Ну и еще разные штуки, которые облегчают пользователю работу с диалогом

Во-вторых, она нам облегчит жизнь по всем остальным пунктам, перечисленным в списке (и даже немного больше).

Вообще, она используется где-то в недрах Windows для обеспечения работы модальных диалоговых окон, а программистам дана, чтобы вызывать ее для немодальных диалогов. Однако мы ее можем использовать где угодно:

Although the IsDialogMessage function is intended for modeless dialog boxes, you can use it with any window that contains controls, enabling the windows to provide the same keyboard selection as is used in a dialog box.

Т.е. теперь, если мы оформим цикл так:


То наше окошко будет иметь навигацию, как в родном диалоге Windows. Но теперь мы получили два недостатка:

Пора поговорить о том, чего нет в туториалах и ответах.

Как правило (как правило! Если кому-то захочется большего, то можно регистрировать свой класс для диалогов и работать так. И, если же, кому-то это интересно, я могу дополнить этим статью) WM_KEYDOWN хотят тогда, когда хотят обработать нажатие на клавишу, которая выполнит функцию в независимости от выбранного контрола в окне — т.е. некая общая функция для всего данного конкретного диалога. А раз так, то почему бы не воспользоваться богатыми возможностями, которые нам сама WinAPI и предлагает: TranslateAccelerator.

Везде используют ровно одну таблицу акселераторов, и только для главного окна. Ну действительно: цикл GetMessage-loop один, значит и таблица одна. Куда еще их девать?

На самом деле, циклы GetMessage-loop могут быть вложенными. Давайте еще раз посмотрим описание PostQuitMessage:

The PostQuitMessage function posts a WM_QUIT message to the thread's message queue and returns immediately; the function simply indicates to the system that the thread is requesting to quit at some time in the future.
If the function retrieves the WM_QUIT message, the return value is zero.

Таким образом, выход из GetMessage-loop осуществится, если мы вызовем PostQuitMessage в процедуре окна. Что это значит?

Мы можем для каждого немодального окна в нашей программе создавать свой собственный подобный цикл. В данном случае DialogBoxParam нам не подходит, т.к. оно крутит свой собственный цикл и повлиять мы на него не можем. Однако если создадим диалог через CreateDialogBoxParam или окно через CreateWindow, то можно закрутить еще один цикл. При этом в каждом таком окне и диалоге мы должны вызывать PostQuitMessage:


Обратите внимание: теперь для каждого нового окна в нашей программе мы можем добавить в обработку собственную таблицу акселераторов. WM_QUIT будет выхватывать GetMessage из цикла для диалога, а внешний цикл его даже не увидит. Почему так происходит?

Дело в том, что внешний цикл «встал» на вызове DispatchMessage, который вызвал нашу процедуру, которая крутит свой собственный внутренний цикл GetMessage с таким же DispatchMessage. Классический вложенный вызов (в данном случае DispatchMessage). Посему внешний цикл не получит WM_QUIT и не завершится на этом этапе. Все будет работать стройно.

Делаем красиво

Т.к. правильная постановка задачи является половиной решения, то сперва надо эту самую задачу правильно же и поставить.

Создадим простой std::map, который будет мапить дескриптор окна в дескриптор таблицы акселераторов. Вот так:


И по мере создания окон будем в него добавлять новые окна с дескриптором на свою любимую таблицу (или нуль, если такая обработка не требуется).


Ну и после закрытия окна удалять. Вот так:


Теперь, как создаем новый диалог/окно, вызываем AddAccelerators( hNewDialog, IDR_MY_ACCEL_TABLE ). Как закрываем: DelAccel( hNewDialog ).


Значительно лучше! Что же там в HandleAccelArray и зачем там GetActiveWindow()?

Есть две функции, возвращающих дескриптор активного окна GetForegroundWindow и GetActiveWindow. Отличие первой от второй вполне доходчиво описано в описании второй:

The return value is the handle to the active window attached to the calling thread's message queue. Otherwise, the return value is NULL.


Теперь каждое дочернее окно вправе добавить себе любимую таблицу акселераторов и спокойно ловить и обрабатывать WM_COMMAND с нужным кодом.

А что там еще об одной строчке в коде обработчика WM_COMMAND?

To differentiate the message that this function sends from messages sent by menus or controls, the high-order word of the wParam parameter of the WM_COMMAND or WM_SYSCOMMAND message contains the value 1.

Обычно код обработки WM_COMMAND выглядит так:


Теперь можно написать так:

P.S.: Мало кто знает, но можно создавать свою собственную таблицу акселераторов, а теперь и применять ее прямо налету.

P.P.S.: Т.к. DialogBox/DialogBoxParam крутит собственный цикл, то от при вызове диалога через них акселераторы работать не будут и наш цикл (или циклы) будет «простаивать».

P.P.P.S.: После вызова HandleAccelWindow мап l_mAccelTable может измениться, т.к. TranslateAccelerator или IsDialogMessage вызывают DispatchMessage, а там может встретиться AddAccelerators или DelAccel в наших обработчиках! Поэтому лучше его после этой функции не трогать.

Пощупать код можно здесь. За основу был взят код, генерируемый из стандартного шаблона MS VS 2017.

Пример окна в OS Windows 7

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

Окно, которое открывается при двойном щелчке на папке, называется окном рабочего стола (desktop window).

Приложения открываются в окнах приложений. Окна приложений в значительной степени похожи на окна рабочего стола (desktop windows). Но если в окнах рабочего стола отражаются папки, файлы и физические устройства, то в окнах приложений, как правило, отражаются документы определённого типа.

Многие окна приложений построены на основе MDI-окон (multiple document interface window). MDI интерфейс позволяет в одном окне приложения, например, Microsoft Word, одновременно открыть несколько окон документов. В этом случае заголовок окна состоит из названия открытого документа и названия приложения.

Заголовок окна и его функции

Заголовок окна — прямоугольная область, расположенная в верхней части окна и содержащая название окна.

Заголовок окна

  • Информационная (заголовок окна содержит название приложения, документа или диалогового окна, что позволяет пользователю различать окна);
  • Перемещение окна (drag and drop левой кнопкой мыши на заголовке окна позволяет перемещать окно);
  • Дискретное изменение размеров окна (двойной щелчок на заголовке разворачивает окно на весь экран, повторный двойной щелчок восстанавливает первоначальный размер окна).

Кнопки размеров

Кнопки размеров это кнопки, расположенные у правой границы заголовка, служащие для изменения размеров окна и его закрытия.

Кнопка Свернуть. Щелчок по кнопке Свернуть сворачивает окно и убирает его с Рабочего стола на Панель задач, при этом приложение остаётся открытым и продолжает выполняться. Развернуть окно снова можно щелчком на соответствующей ему кнопке Панели задач.

Чтобы свернуть все открытые окна, необходимо щёлкнуть по значку Свернуть все окна на Панели быстрого запуска в правой стороне.

Кнопка Развернуть. Щелчок по кнопке Развернуть переводит окно в полноэкранный режим. При этом кнопка Развернуть превращается в кнопку Свернуть в окно.

Кнопка Свернуть в окно. Щелчок по этой кнопке переводит окно в промежуточное состояние (т. е. меньше полноэкранного, но не свёрнутое), которое называют нормальным режимом окна.

Кнопка Закрыть. Щелчок по кнопке Закрыть приводит к закрытию окна.

Назначение кнопок представлено в нижеследующей таблице:

Кнопка Результат щелчка на этой кнопке
Свернуть Сворачивает окно
Развернуть Переводит окно в полноэкранный режим
Свернуть в окно Переводит окно в нормальный режим
Закрыть Закрывает окно


Плавное изменение размеров окна

Граница окна. Линии, ограничивающие окно с четырёх сторон, называются границами окна. Размеры окон приложений и документов, находящихся в нормальном режиме, можно плавно изменять, если зацепить и перемещать левой кнопкой мыши границу окна.

Угол окна. Пересечение вертикальной и горизонтальной границы окна называется углом окна. Правый нижний угол окна при наличии строки состояния называется ушком окна. Если зацепить и перемещать левой кнопкой мыши угол окна, то можно изменять горизонтальный и вертикальный размеры окна одновременно.

Назначение элементов окна, позволяющих плавно изменить размер окна, сведены в таблицу ниже:

Элемент Результат перетаскивания этого элемента
Вертикальная граница окна Плавно изменяет размер окна по горизонтали
Горизонтальная граница окна Плавно изменяет размер окна по вертикали
Угол окна / Ушко окна Плавно изменяет размер окна, как по вертикали, так и по горизонтали


Как закрыть окно с клавиатуры

Чтобы закрыть активное окно с клавиатуры, нажмите Alt+F4.

Как завершить работу «зависшего» приложения

Если работающее приложение не реагирует на команды, подаваемые клавиатурой и мышью, то его нельзя завершить обычным способом (например, щелчком на кнопке Закрыть). В этом случае вам следует нажать комбинацию клавиш Ctrl+Shift+Esc или Ctrl+AIt+Delete для отображения окна Диспетчера задач Windows.

В этом окне перейдите на вкладку Приложения.

Щелчком выделите «зависшее» приложение (у такого приложения в столбце Состояние отображается Не отвечает) и щёлкните по кнопке Снять задачу. Следует помнить, что снятие «зависшего» приложения может привести к потере несохраненных данных.

Зависшее приложение

Меню. Основные типы команд меню

Строка меню — это строка, расположенная непосредственно под заголовком окна. Она обеспечивает доступ к большинству команд этого приложения. Чтобы выбрать команду в меню, необходимо щёлкнуть левой кнопкой мыши на требуемом пункте строки меню и в появившемся ниспадающем меню щелчком левой кнопки выбрать нужную вам команду.

С клавиатуры можно осуществить выбор команды меню, нажав клавишу Alt совместно с «горячей клавишей». Обычно это клавиша с той буквой, которая подчёркнута в названии пункта меню. Например, работая в окне Мой компьютер, вы можете открыть меню ид, нажав комбинацию клавиш Alt+B. Для выбора в открывшемся меню нужной команды можно нажать клавишу с буквой, подчёркнутой в названии команды.

Alt+B

Например, для выбора в меню ид команды Сисок вы должны нажать вначале комбинацию клавиш Alt+B, а затем клавишу п.

Выйти из открытого меню без выбора команды можно двойным нажатием клавиши Esc.

Рассмотрим, основные типы команд меню на примере меню Вид окна папки Мой компьютер:

Использование кнопки системного меню

Кнопка системного меню — это значок, находящийся слева в строке заголовка окна и отображающий пиктограмму соответствующего приложения (документа). Щелчок по кнопке системного меню открывает список команд управления окном. С помощью этих команд можно перемещать окно и изменять его размеры. Пользуясь только клавиатурой, открыть системное меню можно, нажав комбинацию клавиш Alt + Space (Alt + Пробел).

Кнопка системного меню

Панель инструментов

Панель инструментов — это набор кнопок, расположенных ниже строки меню и дублирующих наиболее часто используемые команды меню. Задержав указатель мыши на любой кнопке Панели инструментов, можно получить всплывающую подсказку с описанием этой кнопки. Щёлкнув по кнопке Панели инструментов можно активизировать соответствующую команду, не используя строку меню.

Панель инструментов

Строка состояния

Строка состояния — это информационная строка, которая может быть выведена в нижней части окна. В ней может отображаться выполняемое в приложении действие, информация о выделенном объекте (например, его размер) или о назначении выделенного пункта меню.

Строка состояния

Рабочая область. Полоса прокрутки

Для прокрутки содержимого окна на один элемент вниз (вверх, вправо, влево) надо щёлкнуть по треугольнику ▼ внизу (▲ вверху, ► справа, ◄ слева) соответствующей полосы прокрутки. Для быстрой прокрутки по одному элементу надо щёлкнуть по треугольнику и удерживать его. Для прокрутки экранными страницами надо щёлкать на полосе прокрутки между бегунком и направлением движения (треугольником). Для быстрого перехода надо перетащить бегунок левой кнопкой мыши в нужном направлении.

Рабочая область. Полоса прокрутки

Управляющие элементы в диалоговых окнах

Как переключаться между активными окнами

Чтобы переключиться между приложениями, щёлкните мышкой на Панели задач на значке той задачи, куда вы хотите перейти.

Как переключаться между активными окнами

Как переключиться между активными окнами при помощи клавиатуры

Нажмите комбинацию клавиш Alt+Tab и затем, удерживая нажатой клавишу Alt, нажмите клавишу Tab столько раз, сколько потребуется чтобы переместиться в нужное приложение или документ.


Оконный интерфейс реализуется как в графическом, так и в текстовом режиме (наиболее известной (неполной) реализацией оконного интерфейса в текстовом режиме является программа-оболочка Питера Нортона «Norton Commander» и её многочисленные модификации [1] ). Однако наибольшую популярность он завоевал благодаря операционным системам с графическими оконными оболочками (ОС Mac, ОС Windows) и в настоящее время является самым популярным видом пользовательского интерфейса.

Содержание

Свойства

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

Оконный интерфейс имеют оболочки большинства операционных систем, и, в этом случае, окно может представлять собой отдельную запущенную программу (задачу). Процедуры поддержки оконного интерфейса призваны отрисовывать экран с располагающимися «поверх него» окнами и распределять ввод пользователя между ними (при существовании нескольких равноправных окон ввод пользователя осуществляется в то, которое в данный момент является активным).

Разновидности

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

  • однооконный режим (SDI)
  • многооконный режим (MDI, TDI)
  • псевдомногооконный режим (PMDI)

(некоторые программы поддерживают несколько таких режимов, с возможностью переключения между ними, напр. AkelPad).

Также однооконный режим может поддерживать систему фреймов, при которой общее окно разбито на несколько функционально независимых областей, фреймов (форточек).

Также существует разновидность окон (называемых модальными), которые «монополизируют» фокус пользовательского внимания, и продолжить работу с программой можно лишь после закрытия (выполнения запроса) такого «модального» окна.

Операционные системы с оконным интерфейсом

Большинство современных операционных систем имеют неотъемлемый или опциональный оконный графический пользовательский интерфейс, реализующий окно в качестве основы взаимодействия с пользователем.

Оконная операционная система позволяет пользователю одновременно работать с различными программами. Каждая программа работает в отдельном окне, занимающем отдельное пространство на экране, обычно в форме прямоугольника. Большинство операционных систем предоставляют пользователю основные функции работы с окнами: перенос, изменение размера окна, фокуса окна и так далее.

Некоторые оконные системы, например X Window System, обладают также сетевой структурой, позволяющей пользователю работать с графическими программами на удалённых узлах-клиентах.

История Windows

Раньше, чтобы добиться ответа от будущего поработителя человечества, приходилось вручную вводить данные в командную строку. Это неудобно и долго. Привычный «оконный интерфейс» появился в середине 80-х годов и необходимость заучивать словарик терминов отпала, команда стала передаваться парой кликов. Визуализация действий позволила параллельно выполнять несколько задач, переносить информацию из одной программы в другую, получать быстрый доступ к файлам с помощью иконок.

Первая графическая операционная система была воспринята специалистами в штыки из-за высоких требований к «железу». Для работы требовался экзотический зверь – мышь. В то время хвостатый грызун не был распространен, и на вопрос: «Мыши есть?», можно было получить искренний ответ продавца-консультанта: «Травим».


Начало начал

Графический интерфейс придумал Даг Энгельбарт в 60-х годах. В 1973 команда Xerox создала корпоративный инструмент WIMP – окна, иконки, меню, указатели для компьютеров собственной разработки PERQ и STAR.

Вычислительные машины долгое время считались специализированным инструментом военных, ученых, инженеров. Для элементарных математических расчетов требовалось выучить компьютерную грамоту. Рядовые пользователи не могли представить, зачем им этот дорогой аппарат. С появлением графического интерфейса все изменилось. Звуки, картинки и главное – игры, превратили ЭВМ в мультимедийный развлекательный центр.

Почему окна?

Мы живем в физическом объемном мире, нам нравится все, что можно потрогать, рассмотреть с разных сторон. Окно умеет менять свою форму, расширяется и сужается, отбрасывает тень, создает иллюзию выпуклости. Негатив, злость и раздражение приходят в тот момент, когда динамичное изменение пространства рабочего стола вдруг замораживается, а меняющиеся надписи, иконки, размеры шрифтов, цвета регулярно раздражают мозг, вызывая позитивную реакцию.

Повелители окон

История оконной гегемонии началась в 1975, когда Билл Гейтс и Пол Аллен основали корпорацию Microsoft.


Выпуская софт для быстро растущего рынка персональных компьютеров, Гейтс не мог упустить возможность скопировать новый продукт – графический интерфейс Apple.

В довесок к окнам яблочники давали увесистую Lisa, массой в 9 «тонн» американских денег. Большинство пользователей предпочитали машины попроще. В начале 80-х в гонку вычислений вступает Белоснежка – IBM и 7 компаний-гномов: RCA, CDC, Univac, Burroughs, Honeywell, NCR, GE. Стоимость персонального компьютера падает до 500-1000$. Lisa, стоившая в 9-18 раз дороже, чуть не погубила Apple, снизив ценность акций на 30%, Джобс покинул здание.

Трудолюбивые гномы наштамповали массу компьютеров и настала пора клепать новый интерфейс – так решили в Microsoft. У компании уже был опыт разработки OS для IBM. MS-DOS – получает графическую надстройку Windows 1.

Все украдено до нас

Увидев знакомые окна в 1984 году, Джобс отправился в суд. Тяжба длилась до 1993 года, и закончилась в пользу Билла. По одной из версий, Гейтс позаимствовал интерфейс во время разработки софта для Macintosh, по другой – это самостоятельная разработка, которую вели с 1982 года.

Сам Стив Джобс обзавелся окошками во время визита в исследовательский центр Xerox в Пало-Альто. Стащив дискету со стола инженера, он убегал, сверкая пятками (но это не точно). Компания Apple щедро отсыпала своих акций Xerox, чтобы предотвратить судебные тяжбы.

Факт: первое название Windows – Interface Manager. «Окна» появились благодаря маркетинговому отделу компании.

Причина популярности окошек – отсутствие альтернативы в принципе. Продукт, разработанный Xerox, доведенный до ума Apple и MicroSoft, завоевывал доверие, постепенно приручая восприятие людей к оконному мышлению. Microsoft обязан своей популярности двум провальным проектам Стива Джобса и высокому спросу на персональные компьютеры.

Оконная история

Первенец, родившийся 10 ноября 1983 года, был наречен Windows 1. За цветастым кафтаном графического интерфейса, спряталась морально устаревшая MS-DOS. Черный экран, отражающий лысину программиста, уступил место окнам. Стоимость – 100$, продано 500 000 копий, основной конкурент – Apple Lisa 1983 года рождения.

Появившийся 22 мая 1990 года Windows 3 – стал окном в Интернет. С версии 3.1 используется протокол TCP IP. Малыш получился довольно цветастым, – к тому же со славянской примесью. Пока американских ученых и студентов радовали 256 оттенков, граждане СССР рассматривали зарубежные витражи с кириллическими буковками – добавилась поддержка русского языка.

Дедушка MS-DOS сделал свое дело, родив 3-х сыновей, больше его услуги не требовались. 27 июля 1993 года свершилось долгожданное событие, на свет явилась Windows NT – операционная система нового поколения, мать-прародительница всех последующих OS, которая изначально разрабатывалась для серверов.

На дворе 24 августа 1995 года. Windows 95 – первая полноценная OS для домашнего использования. Лихой хакер играет в косынку, слушает wav-мелодию и пялится 15 минут на медленно прорисовывающуюся картинку в браузере Internet Explorer.


Многозадачность пошла в массы. Интерфейс стал удобным и симпатичным. Появилась кнопка «Start», 65 000 цветов. Продано 40 миллионов копий по 210$, совет директоров Apple льет крокодильи слезы.

Windows 98 – 21 июня 1998 выходит естественное продолжение Windows 95 c улучшенным USB, поддержкой HDD большого объема, предустановленным ПО: обновленный Explorer и Outlook Express. За 7 дней реализовано полмиллиона дисков ценой в 110$.

17 февраля 2000 года появился Millennium, получивший народное прозвище «Линолеум». Выкидыш стимулировал народное творчество, старина Билли узнал о себе много нового. Gif-ки с изображающим головы главы корпорации демонстрировали широту фантазии оконных адептов. Windows ME по сути был Windows 98 с новой красивой шкуркой, аудио-видеоплеером и огромным количеством багов.

«Чупакабру» не смог спасти даже мизерный ценник в 60$. Забив на провальный проект, Microsoft выпускает новую OS – легендарную Windows XP. Система по сей день пользуется популярностью за стабильность, не требовательность к ресурсам, лаконичный графический интерфейс. С 15 августа 2019 года она считается совершеннолетней. По информации от NetmarketshareXP установлена на 12% всех ноутбуков на планете. Ценник – 85$.

30 ноября 2006 года выходит Windows Vista – сестра Линолеума по несчастью. Красивая и яркая особа оказалась слишком требовательна к кормовой базе. Почувствовав неладное, пользователи спешно мигрировали обратно на XP. Из новинок: защита от вирусов, идентифицирующая пользователей, как врагов. Красивая Aero, превращающая Pentium IV в дрова. Ценник 200-400$.


Счастливая 7-ка вышла 22 октября 2009 года, и стала самой популярной операционной системой в первом десятилетии 21 века, установлена на 55,7% ПК по данным Netmarketshare. Быстрая, производительная, с симпатичным интерфейсом, она сочетала в себе брутальный характер XP и красоту Висты. Стоимость на момент релиза 160-320$.

В октябре 2012 года появилсяWindows 8, подтвердив теорию – корпорация выпускает нормальный продукт через один. Многим не понравился плиточный интерфейс, к тому же OS бесконечно быстро пожирала оперативную память. С другой стороны, система работала стабильно и быстро загружалась. Попытка создать универсальный продукт для планшетов, компьютеров и телефонов вышла третьим по счету комочком.

29 июля в 2015 году появляется Windows 10, работающая на всех платформах. Возвращена привычная кнопка пуска. В меню добавляется Microsoft Edge, Streaming Xbox One, Microsoft Store. Цена - 199$.

Apple был первым, но не смог. Семейство Windows за 30 лет захватило дисковое пространство 90% ПК и 30% серверов, установив свою гегемонию. Агенты: Paint, Word, Блокнот, Сапер, Косынка и Пасьянс – поработили разум и души миллиардов пользователей, став легендарными.

Название операционной системы Windows переводится как «окна». Такой вариант представления и организации программных компонентов и элементов управления ими позволяет очень просто и удобно взаимодействовать с графическим интерфейсом системы. Далее, будут рассмотрены основные типы окон, которые могут появляться, а также некоторые элементы и действия с ними.

Окно Windows: что это такое?

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

окно windows

всплывающие окна windows

Основные типы окон

Итак, что представляет собой окно Windows, разобрались. Теперь посмотрим на основные типы окон, которые можно встретить в этой операционной системе. Среди основных видов выделяют следующие:

  • окна приложений;
  • окна документов;
  • диалоговые окна;
  • окна контекстных меню;
  • всплывающие окна.

Окна программ и документов, которые в них созданы, между собой взаимосвязаны. Но окно приложения может отображаться само по себе (пустой документ), а окно документа без программы существовать отдельно не может. Это так называемый тип «окно в окне». Windows 10 или любая другая система – тому яркое подтверждение.

свернуть все окна в windows

Кроме того, окно в окне достаточно часто можно встретить и в интернете, например, при просмотре фильма или прослушивании музыки онлайн, когда в качестве основного окна выступает оболочка веб-браузера, а в качестве второго – встроенный на ресурсе медиаплеер.

Окна приложений

Данный тип окон является самым большим классом в графическом интерфейсе системы, поскольку ее функционирование изначально построено на выполнении той или иной программы.

windows 7 окна

Окна программ Windows-систем представляют собой некую рабочую область, в которой создаются, редактируются или упорядочиваются документы и, в зависимости от типа и назначения приложения, могут присутствовать совершенно разные инструменты и элементы управления.

Элементы управления окнами программ

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

окно в окне windows 10

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

окна программ windows

Также любое окно Windows-программы или стороннего разработчика может содержать специальную «шапку» с названием самого приложения и именем документа, при помощи нажатия на ней и удерживания кнопки мыши окно можно перетащить в любую область экрана (только при условии, что приложение в данный момент не работает в полноэкранном режиме), либо произвести быструю смену размера двойным кликом, что соответствует нажатию кнопки с квадратиком или двумя, как было указано выше.

Ниже, как правило, располагается специальная панель с инструментами самой программы, еще ниже находится рабочая область окна документа, в самом низу располагается строка состояния, в которой может отображаться текущая информация по самому документу, его параметрам, выполняемым в данный момент действиям и т. д. В некоторых приложениях она может отсутствовать вообще. В «родных» программах Windows она тоже может не отображаться по причине деактивации.

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

Варианты представления окон и основные операции с ними

Что касается представления и управления окнами Windows, для начала посмотрим на их вид. В зависимости от версии ОС, они могут выглядеть по-разному.

Так, например, в Windows 7 окна, вернее их некоторые элементы, являются полупрозрачными, поскольку изначально в самом интерфейсе системы установлен такой эффект (Aero), в Windows XP или Vista оформление объемное. В восьмой и десятой модификациях по причине применения интерфейса Metro все плоское.

окно windows

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

Кроме того, одновременно открытые окна могут быть активными и неактивными (это видно по изменению цвета «шапки»), но активное окно всегда располагается на переднем плане. Чтобы активировать неактивное окно, достаточно перевести на него курсор и нажать левую кнопку мыши, хотя перемещаться между ними можно и при помощи сочетания Alt + Tab (собственно, такой метод подходит для всех программ, даже если они использует полноэкранный режим).

Наконец, кнопка или отдельно вызываемая команда «Свернуть все окна» в Windows-системах сворачивает все активные и неактивные окна программ в «Панель задач».

Окна документов

Этот тип окон представляет собой исключительно рабочую область в которой производится создание или редактирование информации определенного типа.

всплывающие окна windows

Эта область реагирует на действия с инструментарием основной программы, на ввод с клавиатуры или с другого источника. В частности, программы для создания музыки или редактирования звука воспринимают сигналы MIDI-клавиатур, подключенных электронных инструментов, микрофонов или внешних аудиовходов.

Диалоговые окна

Такие окна, как правило, либо уже имеются в каком-то приложении или на интернет-ресурсе, либо операционная система выводит их на экран самостоятельно.

свернуть все окна в windows

Суть их появления состоит в том, что пользователю предоставляется некий выбор действий, без подтверждения которых дальнейшая работа программы или переход в следующей функции невозможны. В таких окнах могут содержаться списки или кнопки вроде «Да» («ОК»), «Нет», «Принять», «Отказаться», «Игнорировать», «Пропустить», «Повторить», «Отменить» и т. д. Иными словами, с точки зрения программирования, здесь применяется общеизвестный принцип «да, нет, иначе».

Окна контекстных меню

Этот тип окон обычно скрыт от глаз пользователя и вызывается в основном правым кликом. Такие меню содержат некоторые дополнительные команды, которые могут быть недоступными при использовании основных средств программы.

windows 7 окна

В самих Windows-системах сюда же интегрируются дополнительные строки, например, архиваторов, антивирусов, анлокеров и т. д.

Всплывающие окна Windows

Наконец, этот тип окон представляет собой разного рода подсказки или уведомления при совершении или требовании/предложении совершения каких-либо действий.

окно в окне windows 10

Системные уведомления чаще всего появляются в трее и оформлены в виде желтых прямоугольников. Другие подсказки могут возникать при наведении на них курсора в определенном месте рабочей области программы.

Читайте также: