Взаимодействие Windows и приложения
(Продолжительность занятия 15 минут)
Обычно приложения Microsoft Windows и их компоненты выполняются в индивидуальных окнах. Тем не менее Windows поддерживает и символьно-ориентированные консольные приложения. Это занятие посвящено особенностям консольных и оконных приложений; кроме того, здесь рассмотрены три типа оконных интерфейсов.
Изучив материал этого занятия,
Вы сможете:
- сопоставить консольные и оконные приложения;
- описать различия многодокументного и однодокументного интерфейса Windows Explorer;
- создать многодокументный интерфейс.
Консольные приложения
Консольные приложения работают в командном окне. Их запускают командой Windows Run или из командной строки. Хотя консольное приложение работает в окне (рис. 12.9), ему недоступны графические возможности операционной системы Windows . В качестве примера консольного приложения можно привести программу, работающую в окне MS-DOS Windows 95. > Запуск программы PING
- Нажмите кнопку Start и выберите в меню пункт Run.
- В диалоговом окне
Run наберите команду:
ping 127.0.0.1
Запустится программа PING.
В Visual C++ Вы можете обмениваться информацией с консольными приложениями средствами функций стандартного ввода/вывода [например, printf() и scanf()] .Windows поддерживает механизм перетаскивания, что позволяет организовать некоторое подобие совместного использования данных консольным и оконным приложениями.
Рис. 12.9 Внешний вид оконного и консольного приложений
Оконные приложения
Существуют три варианта пользовательских интерфейсов оконных приложений: многодокументный (Multiple-Document Interface, MDI), однодокумент-ный (Single-Document Interface, SDI) и интерфейс Windows Explorer.
SDI-приложение, например Notepad.exe, имеет только одно окно. Для MDI-приложения, например Microsoft Word, характерно наличие нескольких окон, подчиненных одному родительскому. Такие языки разработки, как Visual Basic 5.0, позволяют быстро и просто создавать SDI- и MDI-приложения.
Выбирая тип интерфейса, руководствуйтесь назначением приложения. Если оно предназначено для обработки страховых претензий, лучше выбрать тип MDI, так как пользователю наверняка потребуется работать одновременно с несколькими претензиями (например, чтобы сравнить их). С другой стороны, для календаря вполне достаточно интерфейса SDI: пользователь вряд ли одновременно откроет два одинаковых календаря.
Многодокументный интерфейс
Такие приложения, как Microsoft Excel и Microsoft Word for Windows, используют MDI-интерфейс, позволяющий одновременно отображать несколько документов, каждый — в своем окне (рис. 12.10). MDI-приложения обычно снабжены меню Window для переключения между окнами документов.
Разрабатывая MDI-приложения на Visual Basic Вы можете присвоить свойству меню WindowList значение True. Если установить флажок WindowList объекта Menu в редакторе Menu Editor, в меню отобразится список открытых дочерних окон MDI. Только один пункт меню формы может иметь установленное свойство WindowList.
Рис. 12.10 Многодокументный интерфейс
Создание многодокументного интерфейса
В этом упражнении Вы создадите MDl-приложение, выводящее растровое изображение.
> Создание MDI-приложения
- Создайте в Visual Basic новый проект типа Standard EXE.
- Переименуйте форму Form1 в frmChild.
- Присвойте свойству MDIChild формы frmChild значение True.
- Добавьте в приложение MDI-форму.
- Измените размер MDI-формы, чтобы она могла содержать дочерние окна.
- Установите свойства MDI-формы, перечисленные ниже.
Свойство |
Значение |
Name | mdiMain |
Caption | MDI Main Form |
StartUpPosition | 2-CenterScreen |
- В окне Project Properties выберите в качестве Startup Object объект mdiMain.
- Создайте для mdiMain меню, включив в меню File пункты New Child и Exit. Установите свойства, перечисленные ниже.
Меню |
Свойство |
Значение |
File
|
Name | mnuFile |
Caption | &File | |
New Child
|
Name | mnuNewChild |
Caption | &New Child Window | |
Caption | E&xit | |
Window
|
Name | mnuWindow |
Caption | &Windows | |
WindowList | установлен |
- Добавьте следующий
код в событие для щелчка mnuNewChild:
Dim newchild As Form
Static child_num As Integer
child_num = child_num + 1
Set newchild = New frmChild
newchild.Caption = "Дочерняя форма #" & child_num
newchild.Visible = True
- Добавьте в событие mnuExit_CIick код закрытия приложения.
> Вывод на экран растрового изображения
- Добавьте на форму frmChild поле изображения и кнопку.
- Установите свойства, перечисленные ниже.
Элемент управления |
Свойство |
Значение |
Picture Box | Name | PicMain |
Command Button | Name | CmdLoad |
Caption | Load Picture |
- Добавьте следующий
код в событие Click кнопки cmdLoad:
Set picMain.Picture = LoadPicture("c:\program files" & "\devstudio\vb\graphics\metafile\arrows\3darrow1.wmf")
- Сохраните изменения и протестируйте приложение.
Однодокументный интерфейс
Пример SDI-интерфейса — приложение Microsoft WordPad, входящее в состав Microsoft Windows (рис. 12.11). Оно позволяет открывать только один документ — чтобы открыть второй, нужно сначала закрыть первый.
SD1 — самый распространенный тип интерфейса приложений; большинство примеров в руководстве Visual Basic Programmer's Guide используют именно SDI-интерфейс.
Рис. 12.11 Однодокументный интерфейс
Интерфейс Windows Explorer
Кроме двух основных типов интерфейса — SDI и MDI, существует еще один, причем весьма популярный — Windows Explorer (рис. 12.12). Он представляет собой одно окно, разделенное на две области: одна (обычно левая) содержит древовидное представление иерархии объектов, другая же представляет собой область для отображения текущего объекта. Этот тип интерфейса больше других подходит для перемещения среди множества документов, изображений или файлов.
Рис. 12.12 Интерфейс Windows Explorer
Резюме
Windows предлагает три разновидности интерфейса: многодокументный (Multiple-Document Interface, MDI), однодокументный (Single-Document Interface, SDI) и интерфейс Windows Explorer. MDI-интерфейс позволяет отображать несколько документов одновременно, каждый — в своем окне. Microsoft Excel и Word for Windows имеют MDI-интерфейс. SDI-приложения выводят одно окно и не имеют дочерних окон. Microsoft WordPad — пример однодокументного интерфейса. Интерфейс Windows Explorer позволяет перемещаться между множеством документов или файлов. Левая часть окна этого интерфейса отображает дерево объектов, а правая — конкретный объект.