Архитектура Microsoft Windows для разработчиков

         

Соглашения Windows

по пользовательскому интерфейсу

(Продолжительность занятия 60 минут)

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

Например, в большинстве Windows-приложений строка меню (оно расположено в верхней части окна) начинается с меню File, продолжается дополнительными меню — например, Edit и Tools — и завершается меню справочной системы (Help). Возможно, название Documents нравится Вам больше, чем File, или Вы сочтете, что меню


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

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

 
Изучив материал этого занятия, Вы сможете:

  • описать принципы построения стандартного пользовательского интерфейса:
  • реализовать функциональные возможности OLE в приложениях;
  • проверить параллельное выполнение нескольких экземпляров приложения;
  • перечислить элементы, которые следует регистрировать в реестре Windows;
  • создать программу установки.

OLE Drag-and-Drop

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

Функция OLE drag-and-drop («перетащить и отпустить») позволяет перемещать данные на рабочем столе и в окне Windows Explorer, а также между любыми другими приложениями, поддерживающими этот протокол (рис. 12.1).

Поддерживая ее, Вы уподобите интерфейс Вашего приложения стандартному для Windows и для других программ, применяющих возможности OLE.

В результате пользователям легче освоить его, а приложению проще работать с другими программами, поддерживающими OLE.

Рис. 12.1 Копирование таблицы Microsoft Excel в документ Microsoft Word средствами функции OLE Drag-and-Drop

Реализация функции OLE Drag-and-Drop

В этом упражнении Вы средствами Visual Basic создадите приложение, которое поддерживает механизм перетаскивания объектов.

> Добавление средств поддержки перетаскивания

  1. Запустите Visual Basic и создайте новый проект типа Standard EXE.
  2. Поместите на форму два элемента управления-рисунка.
  3. Назначьте свойствам OLEDragMode и OLEDropMode обоих элементов управления значение Automatic.
  4. Добавьте растровое изображение в элемент управления Picture1.
  5. Запустите приложение и перетащите изображение из Picturel в Picture2.

> Поддержка перетаскивания объектов из одного приложения в другое

  1. Остановите приложение и добавьте в форму текстовое поле.
  2. Присвойте свойству Multiline поля Text1 значение True.
  3. Очистите текстовое поле.
  4. Присвойте свойствам OLEDragMode и OLEDropMode текстового поля значе ние Automatic.
  5. Запустите приложение.
  6. Запустите Microsoft Word и создайте новый документ.
  7. Расположите окна так, чтобы Вы могли видеть их оба.
  8. Наберите в документе Word строку Привет!.
  9. Выделите текст и перетащите его в текстовое поле формы Visual Basic.
  10. Перетащите изображение из элемента управления Picturel в документ Word.
  11. Остановите приложение Visual Basic.
  12. Закройте Word и Visual Basic.

Тестирование на всех Windows-платформах

Если Вы хотите создавать программы на базе интерфейса Win32 (Win32 API), Вам нужно протестировать их на всех Windows-платформах.

Это исключит вероятность использования функций (или класса функций) Win32 API, которые поддерживаются только на одной платформе. Например, интерфейс графических устройств (GDI) в Windows NT работает с 32-битной системой координат, которая недоступна в Windows 95. Применение 32-битных координат в приложении под управлением Windows 95 приведет к неверному результату.

Запуск нескольких экземпляров приложения

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

Обработка нескольких экземпляров приложения

Возможны два способа предотвращения проблем, связанных с одновременной работой нескольких копий приложения:

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

В любом случае в стартовом коде Вашей программы следует проверить выполнение нескольких копий.

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

Проверка одновременного выполнения нескольких экземпляров приложения

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

Альтернатива этому методу — использование свойства Prevlnstance объекта Арр. Оно позволяет проверить, была ли уже запущена копия данного приложения.

 
Пример В этом коде на Visual Basic для обнаружения выполняющейся копии приложения применяется событие Load:

Private Sub Form_Load()

' Проверка наличия выполняющейся копии приложения

If Арр.Prevlnstance = True Then

MsgBox "Это приложение уже запущено.", vbCritical, "MyApp"

End

End If

End Sub


> Проверка наличия работающей копии программы в Visual Basic

  1. Запустите Visual Basic и создайте новый проект типа Standard EXE.
  2. Дважды щелкните форму Forml, чтобы открыть окно кода.
  3. В процедуру события Load вставьте следующий код:

    Private Sub Form_Load( ) If Арр.Prevlnstance Then MsgBox "Эта программа уже запущена." Unload Me End If End Sub

  4. В меню Project выберите пункт Project1 Properties.
  5. Измените Project Name на Instance и нажмите ОК.
  6. В меню File выберите Make Instance.exe.
  7. Средствами Windows Explorer откройте каталог, где Вы создали файл Instance.exe, и дважды щелкните его, чтобы запустить программу.

    После запуска программы на экране появится форма Fonnl.

  8. Дважды щелкните файл Instance.exe в Windows Explorer для запуска второй копии программы.

    На экране появится созданное Вами в Visual Basic окно с сообщением, информирующем, что один экземпляр приложения уже запущен.

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

Целостность интерфейса Windows

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

  • контекстными меню с перечнем операций, применимых к данному объекту (оно появляется, когда пользователь щелкает объект правой кнопкой мыши);
  • панелями свойств, где сгруппированы логически связанные элементы диалога;
  • шрифтами ТruеТуре.

Вот еще несколько советов.

  • Везде, где возможно, применяйте поддерживаемые системой элементы управления, а не создавайте свои собственные.

    Например, для открытия файла воспользуйтесь стандартным диалоговым окном, а не модернизированной Вами версией File Open.

  • Разрешайте пользователям выбирать собственные объемные цветовые схемы в Панели управления.

    Системные константы, определяющие цвета, позволяют Вам использовать в своем приложении пользовательскую цветовую схему. Один из вариантов приведен в таблице.

Константа Visual Basic

Описание

VbWindowBackground

Цвет фона окна

VbMenuText

Цвет текста меню

VbInfoText

Цвет текста оперативных подсказок по элементам интерфейса

VbInfoBackground

Цвет фона оперативных подсказок по элементам интерфейса

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

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

Использование реестра Windows

Перечисленные ниже элементы следует регистрировать в реестре Windows.

  • Ассоциации между типами документов (или файлов данных) и приложениями (исполняемыми файлами), осуществляющими просмотр и модификацию этих документов.

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

  • Значки, отображаемые системой для Вашего приложения и типов данных.

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

  • OLE-команды.

    Это операции (например, Edit, Open или Play), которые пользователь вправе выполнить над объектом. Вам следует включить в реестр соответствующие команды для всех типов данных Вашего приложения. Например, если программа воспроизводит аудиофайлы, для звуковых объектов следует зарегистрировать команду Play. Эти команды, в частности, входят в контекстное меню объекта: оно появляется, когда пользователь щелкает объект правой кнопкой мыши.

  • Поддерживайте команду Print To, чтобы пользователи могли перетаскивать объекты на принтер.

Пользовательскую информацию следует помещать в раздел реестра HKEY_CURRENT_USER, а иные данные - в HKEY_CURRENT_MACH1NE. Эти элементы реестра предназначены для хранения сведений, которые ранее содержались в INI-файлах Windows 3.1. Если Вы переносите старые приложения на новую Windows-платформу, откажитесь от lNI-файлов и воспользуйтесь для хранения информации реестром.

Поддержка системных правил именования файлов

В Windows 95 разрешены длинные (до 255 символов) имена файлов и пути в формате универсальных правил именования (Universal Naming Convention, UNC) типа \\имя_сервера\cетевое_имя.

Длинные имена файлов

Для поддержки длинных имен файлов необходимо, чтобы все диалоговые окна приложения могли отобразить достаточную часть имени файла, не ограничиваясь только форматом 8.3 (в нем отводится восемь символов под имя и три — под расширение). Windows 95 трактует расширение «.3» как отдельное поле типа. Обязательно также предусмотрите возможность отображения документов и файлов данных большими и малыми значками.

Универсальные правила именования

Благодаря поддержке UNC-путей, пользователи могут напрямую просматривать сеть и открывать файлы, не назначая символы сетевым ресурсам. Кроме того, UNC-пути облегчают приложениям работу с данными. Например, некоторые программы сохраняют список документов, прежде открывавшихся пользователем. Если приложение сохраняет путь с именем диска (например, N:\), файл не будет найден без предварительного назначения сетевому ресурсу символа N:. Сохранив информацию в форме UNC-пути, приложение сумеет подключиться к сетевому ресурсу, не запрашивая пользователя о местонахождении файла.

«Интеллектуальные» программы установки и удаления

Снабдите свое приложение «интеллектуальной» программой установки, предусмотрев в ней выполнение следующих операций:

  • быструю установку (Express setup) приложения в стандартной конфигурации;
  • выборочную установку (Custom setup), позволяющую пользователю указать компоненты и папку для хранения программы, а также разрешить или запретить программе установки изменять параметры системы;
  • минимальную установку (Minimal setup), при которой в целях экономии дискового пространства устанавливаются только самые необходимые компоненты приложения;
  • • по возможности разрешайте пользователям хранить большие вспомогательные файлы (например, словари или тезаурус) на сетевом сервере, а не локально.

 
Примечание Создавая «интеллектуальную» программу установки, не храните установочную информацию в WIN. IN I — пользуйтесь реестром.

Мастер Setup Wizard

Мастер установки Setup Wizard, включенный в состав Visual Basic, на основании анализа файла проекта составляет необходимый программе установки список файлов с зависимостями. Кроме того, он сжимает эти файлы и создает программу установки (для жесткого диска или дискет). Вся регистрация клиентской части, в том числе и проверка версий файлов, выполняется автоматически. Это особенно важно при установке DLL- или ОСХ-файлов на клиентский компьютер. Мастер может включить в установочный комплект и другие файлы, например изображение логотипа компании или заставку для отображения динамики процесса установки. Все параметры можно сохранить в шаблоне для повторного использования.

> Знакомство с мастером установки

В этом упражнении Вы средствами мастера Visual Basic Setup Wizard создадите дистрибутив приложения.

  1. В меню Programs, Microsoft Visual Basic 5.0 выберите пункт Application Setup Wizard.
  2. Задайте пример файла проекта

    C:\ProgramFiles\DevStudio\VB\samples\PGuide\Controls\Controls.vbp

  3. Ознакомьтесь со всеми экранами мастера.
  4. Выберите метод установки Single Directory.
  5. Создайте установочный комплект в каталоге SWSETUP.
  6. Откройте окно My Computer и посмотрите, какие файлы помещены в этот каталог.

Создание утилиты удаления приложения

Пользователи должны иметь возможность без труда удалить Ваше приложение. Установка типичного приложения иногда влечет множество изменений в системе, включая создание значков и папок, регистрацию специальной информации в реестре, смену путей и добавление файлов (например, DLL) в системный каталог. В результате пользователь не может избавиться от приложения, просто удалив несколько файлов. Специальная утилита значительно облегчает восстановление системы в исходное состояние. Обычно утилита удаления приложения удаляет:

  • файлы, скопированные на компьютер, и каталоги, созданные при установке;
  • все добавленные значки и группы;
  • информацию из реестра, включая идентификаторы классов и OLE-команд для объектов приложения;
  • все ссылки из конфигурационных файлов и реестра.

Мастер Setup Wizard автоматически регистрирует приложения в Windows 95, поэтому удалить программу пользователь может утилитой Add/Remove Programs Панели управления Windows 95. Это средство позволяет избавиться от всех ссылок, каталогов и значков программных групп, а также автоматически отслеживает файлы, используемые несколькими приложениями, — они не удаляются, если нужны для работы других приложений.

Создание программы установки

В этом упражнении Вы с помощью мастера Visual Basic Setup Wizard создадите программу установки приложения.

> Создание программы установки

  1. Запустите мастер Visual Basic Application Setup Wizard.
  2. Когда появится диалог Introduction, нажмите кнопку Next.
  3. Нажмите кнопку Browse и выберите следующий файл проекта:

    c:\ProgramFiles\DevStudio\VB\samples\PGuide\calc\Calc.vbp

  4. Выберите Rebuild the Project и нажмите Next.
  5. Выберите метод установки Single Directory и нажмите Next.
  6. Выберите папку WA\Practice\Chl2\Setup и нажмите Next.
  7. В составе проекта нет серверных компонентов ActiveX, поэтому просто нажмите Next. Application Setup Wizard определит, какие файлы нужны для установки.
  8. Изучите информацию о файлах и нажмите Next.
  9. Нажмите Finish для создания программы установки.
  10. Нажмите ОК.

> Тестирование программы установки

  1. На рабочем столе Windows 95 откройте окно My Computer.
  2. Дважды щелкните файл Setup.exe, расположенный в каталоге WA\Practice\ Chl2\Setup.
  3. Появится диалог Calc Setup. Закройте все приложения и нажмите ОК.
  4. Посмотрите, в какой каталог устанавливается программа, и щелкните значок установки.
  5. По завершении процесса нажмите ОК.
  6. В меню Windows 95 Programs выберите Calc.

    Запустится калькулятор — программа-пример Visual Basic, поставляемая вместе с Visual Basic 5.0

  7. Закройте программу.

> Удаление приложения

  1. Откройте Панель управления Windows 95.
  2. Дважды щелкните значок Add/Remove Programs.
  3. Выберите CALC и нажмите кнопку Add/Remove. В ответ на запрос нажмите Yes.
  4. Нажмите ОК.

Обратите внимание на исчезновение элемента Calc из меню Programs Windows 95.

Объемность элементов интерфейса

Для многих элементов управления интерфейса Windows используется выделение и затенение, за счет чего они выглядят объемными (рис. 12.2). Это облегчает работу пользователя — например, когда он щелкает объемную кнопку, она «вжимается» совсем как настоящая. Чтобы соответствовать интерфейсу Windows, Ваше приложение должно применять объемные элементы управления.

Рис. 12.2 Элементы управления, которые выглядят объемными

Резюме

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

Разрабатывайте приложения с учетом требований пользовательского интерфейса Windows.

Используйте реестр Windows.

Поддерживайте системные правила именования файлов. Создавайте интеллектуальные программы установки и удаления. Придайте элементам интерфейса своих приложений объемный вид.

 



Содержание раздела