Краеугольным камнем операционной системы Windows 2000 (как впрочем и любой из версий Windows в целом) является идея предоставления любому человеку, имеющему базовые навыки работы с данной системой, возможность сесть за компьютер и запустить практически любое приложение без специального предварительного обучения. Чтобы реализовать этот замысел, Windows предоставляет пользователю единообразный интерфейс. Теоретически, если вы можете работать в какой-либо одной Windows-ориентированной программе, то вы сможете работать и во всех остальных. Без сомнения, в реальной жизни для максимально эффективного использования возможностей наиболее полезных программ по-прежнему требуется определенная подготовка. Но, по крайней мере, это обучение может быть сведено до разъяснения того, что делает данная программа, а не того, как пользователь должен взаимодействовать с ней. Поэтому неудивительно, что значительная часть кода в Windows-приложениях предназначена для реализации интерфейса пользователя.
Необходимо иметь в виду (и это очень важный момент), что не всякая программа, выполняемая под управлением Windows 2000, автоматически предоставляет пользователю интерфейс, выполненный в Windows-стиле. Операционная система Windows определяет среду, которая только поддерживает и стимулирует единообразие, но не заставляет делать это в «принудительном порядке». Например, можно написать массу Windows-программ, которые не будут использовать преимущества, которые обеспечивают стандартные элементы интерфейса Windows. (Кстати, очень многие системные и сетевые утилиты Windows выполнены именно в виде приложений командной строки, а не в стиле Windows. Но это допустимо, так как они предназначены для высококвалифицированных специалистов, например, системных администраторов.) Для того чтобы создать программу в стиле Windows, необходимо осознанно следовать определенным правилам. Только те программы, которые написаны с учетом использования богатых возможностей Windows, будут выглядеть и вести себя как настоящие Windows-приложения. Конечно, вы можете отвергнуть базовую философию Windows-дизайна, но для такого решения у вас должны быть очень веские причины. Потому что иначе ваши программы будут нарушать самую фундаментальную заповедь Windows: обеспечить единообразный и последовательный интерфейс пользователя. В общем случае, если вы пишите прикладные программы под Windows 2000, то они обязаны соответствовать нормам и подходам проектирования стандартного Windows-стиля.
Давайте рассмотрим самые значительные составляющие, которые определяют среду приложений для Windows 2000.
Модель рабочего стола
Основная идея (с некоторыми нюансами) основанного на окнах пользовательского интерфейса состоит в том, чтобы обеспечить на экране монитора эквивалент поверхности рабочего стола. Так, на обычном письменном столе могут лежать стопкой несколько листков бумаги, причем часто некоторые листы торчат из стопки в разные стороны, так что под верхним листом видны фрагменты этих страниц. Эквивалентом рабочего стола в Windows 2000 является экран монитора. Эквивалентами листов бумаги или их фрагментов являются окна на экране. На обычном рабочем столе эти листы бумаги вы можете передвигать с места на место. Возможно, даже ухитряетесь выдернуть из стопки необходимый документ и положить его поверх всех остальных, или изучаете кусочек другого листа, выглядывающего из пачки документов. Аналогичные операции позволяет выполнять в своих окнах и Windows 2000. Благодаря возможности выбрать какое-то окно, вы можете сделать его активным. Это означает, что оно будет помещено поверх всех остальных окон, и вся информация, вводимая, например, с помощью клавиатуры будет направляться именно приложению, представленному этим окном. Окно можно увеличить или уменьшить, а также переместить в другое место экрана. Иными словами, Windows позволяет использовать поверхность экрана практически таким же образом, как и поверхность своего письменного стола. Все программы, соответствующие стандартам Windows-стиля, должны позволять пользователям выполнять подобные действия.
Мышь
Как и все предыдущие версии Windows, операционная система Windows 2000 использует манипулятор типа мышь почти во всех операциях управления, выбора и перемещения. Конечно, для этого можно использовать также и клавиатуру, но в первую очередь Windows оптимизирована для работы с мышкой. Поэтому ваши программы должны поддерживать мышь в качестве основного устройства ввода, причем везде, где это только возможно. К счастью, для основного набора обычных действий, как, например, использования линейки прокрутки, выбора элемента меню и тому подобного, автоматически предусмотрено использование мыши.
Пиктограммы, растровые изображения и другая графика
Windows 2000 широко поддерживает, даже поощряет применение пиктограмм, растровых изображений и других видов графики. Обоснованием повсеместного применения таких элементов служит старая проверенная временем поговорка: Лучше один раз увидеть, чем сто раз услышать[1]. Пиктограмма — это маленький мнемонический значок, символизирующий некоторую операцию, ресурс или программу. Растровое изображение, часто называемое битмапкой (bitmap) — это графическое изображение прямоугольной формы в растровом формате; такие изображения часто используются для того, чтобы быстро донести до пользователя некоторую информацию в визуальном виде. Более того, растровые изображения могут также использоваться в качестве элементов меню. Windows 2000 поддерживает очень широкий диапазон графических возможностей, в том числе прорисовку линий, прямоугольников и окружностей. Правильное применение подобных графических элементов является необходимым условием успешного программирования для Windows.
Меню, средства управления и диалоговые окна
Windows обеспечивает несколько видов стандартных элементов, которые предназначены для ввода информации пользователем. В их число входят: меню, разнообразные средства управления, а также диалоговые окна. Не отвлекаясь на подробности, можно сказать, что меню отображает варианты действий, на которых пользователь может остановить свой выбор. Поскольку меню являются стандартными элементами Windows-программирования, функции встроенного в меню выбора обеспечиваются средствами самой системы Windows. Из этого следует, что вашей программе не понадобится самой нести бремя непроизводительных организационных издержек, связанных с применением меню.
Элемент управления представляет собой окно особого вида, которое позволяет осуществлять специфический способ взаимодействия с пользователем. В качестве примеров таких окон можно привести кнопки, полосы прокрутки, окна редактирования и флажки (check boxes). Как и в случае со средствами меню, обработка элементов управления, которые определяются самой Windows, почти полностью автоматизирована. Поэтому ваша программа может использовать их без необходимости погружаться в рутину проработки всех деталей.
Диалоговое окно — специальное окно, которое позволяет осуществлять более сложное взаимодействие с программой по сравнению с возможностями, реализуемыми с помощью меню. Например, ваше приложение может использовать диалоговое окно, которое будет позволять пользователям вводить имя файла. Как правило, диалоговые окна содержат еще и элементы управления. В большинстве случаев ввод информации с помощью стандартных средств, реализуемый не через меню, осуществляется посредством диалогового окна.
[1]Вот ее Windows-переформулировка: Лучше один раз щелкнуть на пиктограмме, чем сто раз набрать на клавиатуре.