назад | содержание | вперед

Дочернее окно MDI-интерфейса

Дочернее окно (рис. 7.4) обладает всеми описанными в табл. 7.1 свойствами окон. Практически все они доступны при проектировании.

Рис. 7.4. Форма дочернего окна интерфейса типа MDI

Основные особенности дочерних окон:

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

Таблица 7.5. Значения констант для метода Arrange

Константа

Значение

Описание

vbCascade

0

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

vbTileVertical

1

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

vbTileHorizontal

2

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

vbArrangeIcon

3

При минимизации окна располагаются на нижнем крае родительского окна



Для добавления дочерней формы в проект необходимо выполнить команду Add Form (Добавить форму) меню Project (Проект). В качестве дочерней формы можно использовать автоматически создаваемую при выборе нового проекта форму. При этом свойство MDIchild следует установить в значение True.

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

1. Создайте новый проект. Для этого в меню File (Файл) выберите команду New Project (Создать проект) и дважды щелкните на значке Standard ЕХЕ.

2. Откройте окно свойств проекта, выбрав команду ProjectName Properties в меню Project.

3. В поле Project Name введите имя проекта MyMDIApp и нажмите кнопку ОК для закрытия диалогового окна.

4. Чтобы автоматически использовать созданную форму проекта в качестве дочерней, откройте окно свойств, вызвав его командой Properties Window (Окно свойств) в меню View (Вид), и установите для свойства MDichild значение True.

5. Используя свойство Name, введите имя формы frmChildMDI.

6. В поле свойства caption введите заголовок окна Дочернее окно MDI.

7. Добавьте в проект MDI-форму, выполнив команду Add MDI Form (Добавить MDI-форму) меню Project (Проект).

8. Воспользовавшись свойством Name, введите имя формы mdiParentMDI.

9. Используя свойство Caption, введите заголовок окна Родительское окно MDI

10. Для демонстрации некоторых действий нам понадобится простое меню. Создадим его по шагам (редактор меню описан в разделе "Меню" данной главы).

Небольшое приложение готово к работе. Для проверки запустите его при помощи команды Start (Запустить) меню Run (Запуск). Остановка приложения выполняется командой End (Остановить) того же меню.

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

12. В списке объектов (левый раскрывающийся список) выберите пункт меню mnuFileNewForm, в левом списке событий выберите событие click и напишите для него следующий код :

Private Sub nmuFileNewForm Click()

Dim frmNewForm As New frmChildMDI

frmNewForm.Show

End Sub

В тексте кода мы объявили объектную переменную frmNewForm для ссылки на вновь созданный экземпляр окна. Затем с помощью метода show новый экземпляр визуализируется в родительском окне. Для вычисления номера дочернего окна используется переменная frmCount. Этот код выполняется при выборе команды Новая форма из меню Файл родительского окна.

13. При помощи этого простого приложения можно проверить все основные характеристики родительского и дочернего MDI-окон. Для проверки возможностей упорядочения дочерних окон в родительском окне (свойство Arrange) добавим в меню пункт Окно и команду меню, выполняющую упорядочение. Для этого откройте редактор меню и добавьте пункт Окно и необходимую команду. Присвойте пункту меню имя mnuwindow, а команде, предназначенной для расположения окон каскадом, имя mnuwindowTileVertical. Программный код должен выглядеть следующим образом:

Private Sub mnuwindowTileVertical Click()

mdiParentMDI.Arrange vbTileVertical

End Sub

Ниже приведен полный текст кода созданного нами простого приложения:

Dim frmCount As Integer

Private Sub MDIForm_Load()

frmChildMDI.Caption = "Дочерняя форма 1"

frmCount = 1

End Sub

Private Sub mnuFileNewForm Click()

Dim frmNewForm As New frmChildMDI

frmCount = frmCount + 1

frmNewForm.Caption = "Дочерняя форма " + Str(frmCount)

frmNewForm.Show

End Sub

Private Sub mnuWindowTileVertical Click()

mdiParentMDI.Arrange vbTileVertical

End Sub

Работающее приложение с упорядоченными окнами представлено на рис. 7.5.

Рис. 7.5. Работа простого приложения в стиле интерфейса MDI

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

 

 

 

назад | содержание | вперед