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

Элемент управления CoolBar

С помощью элемента управления coolBar можно создавать в приложении улучшенные панели инструментов. Для использования этого элемента управления в приложении необходимо подключить к проекту библиотеку Microsoft Windows Common Controls-3 6.0, воспользовавшись диалоговым окном Components (Компоненты), открываемым при выборе команды Components (Компоненты) меню Project (Проект).

В отличие от объекта ToolBar, элемент управления CoolBar более универсален и кроме кнопок может содержать другие элементы управления, в том числе и панели типа ToolBar. Усовершенствованная панель представляет собой контейнер, причем он состоит из маленьких контейнеров Band (Полоса), которые являются объектами и непосредственно включают в себя все элементы управления, вводимые в CoolBar.

Для создания в проекте панели инструментов типа CoolBar выполните следующие действия:

1. Подключите к проекту библиотеку Microsoft Windows Common Controls-3 6.0, в которой содержится элемент управления CoolBar.

2. Добавьте в родительскую форму объект coolBar, дважды щелкнув мышью кнопку CooiBar на панели элементов управления.

3. Присвойте новой панели инструментов имя cbrTools.

4. Выделите объект CoolBar, нажмите правую кнопку мыши и выберите в появившемся контекстном меню команду Properties (Свойства). Открывается диалоговое окно Property Pages (рис. 7.17), предназначенное для создания панели типа CoolBar.

5. Используя кнопку Insert Band (Вставить полосу), добавьте на панель инструментов еще несколько объектов Band.

Рис. 7.17. Диалоговое окно Property Pages для объекта CooiBar

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

1. Используя кнопку CommandButton на панели элементов управления, разместите на создаваемой панели инструментов CoolBar кнопку управления.

2. Скорректируйте в окне Properties (Свойства) для созданной командной кнопки следующие свойства:

3. Для создания кода, выполняемого при нажатии новой кнопки на панели инструментов, в окне редактора кода введите следующие команды, осуществляющие вызов дочерней формы:

Private Sub cbNewCoolBar_Click ()

Dim frmNewForm As New frmChildMDI

frmCount = frmCount + 1

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

frmNewForm.Show

End Sub

4. Запустите приложение на выполнение. Работающее приложение с панелью инструментов типа CoolBar показано на рис. 7.18.

Рис. 7.18. Приложение с панелью инструментов типа CooiBar

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

В Visual Basic 6 существует специальный вид окон — диалоговые. В распоряжении разработчика имеется хорошо развитый инструментарий для их создания. Диалоговые окна бывают двух типов — модальные и немодальные. Модальное диалоговое окно — это окно, из которого нельзя перейти в другое окно, не закрыв текущее. Данный вид диалоговых окон используется для выдачи сообщений о ходе работы приложения, его настройки или ввода каких-либо данных, необходимых для работы. Примером такого диалогового окна в программе Visual Basic является окно About. Модальное диалоговое окно вынуждает пользователя совершать некоторые действия или отвечать на запрос приложения вводом информации или выполнением какого-либо действия.

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

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

Окно сообщения (MsgBox)

Диалоговое окно сообщения (рис. 7.19) не требует проектирования и вызы вается из программы командой MsgBox или с помощью аналогичной функции MsgBox о, имеющей следующий синтаксис:

MsgBox (prompt[, buttons] [, title] [, helpfile, context])

где:

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

Для примера введите в командном окне среды проектирования Immediate следующую команду и нажмите клавишу <Enter>:

MsgBox "Приветствуем Вас!", vbYesNo + vbExclamation,"Окно сообщений"

В ответ получите диалоговое окно, показанное на рис. 7.19.

Рис. 7.19. Диалоговое окно сообщения

Таблица 7.8. Константы параметров для значков диалогового окна сообщения

Значок

Константа

Значение

Тип сообщения

vbExclamation

48

Предупреждение

vbQuestion

32

Запрос

vbInformation

64

Информация

vbCritical

16

Ошибка


 

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

Таблица 7.9. Константы параметров наличия кнопок в окне сообщения и установки фокуса на кнопку

Константа

Значение

Набор кнопок в диалоговом окне

vbOkOnly

0

OK

vbOkCancel

1

OK, Отмена

vbAbortRetryIgnore

2

Стоп, Повтор, Пропустить

vbYesNoCancel

3

Да, Нет, Отмена

vbYesNo

4

Да,Нет

vbRetryCancel

5

Повтор, Отмена

vbDefaultButton1

0

Устанавливает фокус на первой кнопке

vbDefaultButton2

256

Устанавливает фокус на второй кнопке

vbDefaultButton3

512

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

vbDefaultButton4

768

Устанавливает фокус на четвертой кнопке

vbApplicationModal

0

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

vbSystemModal

4096

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

vbMsgBoxHelpButton

16384

Добавляет в диалоговое окно кнопку Справка

VbMsgBoxSetForeground

65536

Объявляет диалоговое окно фоновым окном

vbMsgBoxRight

524288

Выравнивает текст в диалоговом окне по правому краю

vbMsgBoxRtIReading

1 048 576

Переворачивает текст для чтения справа налево



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

Таблица 7.10. Значения констант, возвращаемые кнопками окна сообщения

Кнопка

Константа

Значение при нажатии на кнопку

ОК

vb0k

1

Отмена

vbCancel

2

Стоп

vbAbort

3

Повтор

vbRetry

4

Пропустить

vblgnore

5

Да

vbYes

6

Нет

vbNo

7


 

Диалоговое окно ввода информации (InputBox)

Достаточно часто в диалоговом окне необходимо не только нажать кнопки выбора действия, но и ввести определенную информацию, которая затем анализируется программой. Для выполнения такого рода действий в Visual Basic можно использовать диалоговое окно ввода информации InputBox (рис. 7.20). Функция InputBox имеет следующий синтаксис:

InputBox (prompt [, title] [, default] [, xpos] [, ypos] [, helpfile, context])

где:

Для примера введите в командном окне среды проектирования Immediate следующую команду:

strUserTest = InputBox ("Введите пароль", "Запуск приложения", "****")

В результате получите диалоговое окно, показанное на рис. 7.20.

Рис. 7.20. Диалоговое окно ввода

В отличие от диалогового окна MsgBox, в окне InputBox всегда имеются только две кнопки управления: ОК и Cancel. Кнопка ОК подтверждает ввод данных, кнопка Cancel — закрывает диалоговое окно без ввода данных.

Использование элемента управления CommonDialog для создания диалоговых окон

Все диалоговые окна, перечисленные в начале раздела "Диалоговые окна", можно создать с помощью элемента управления commonDialog. Прежде чем его использовать, необходимо подключить к проекту библиотеку Microsoft Common Dialog Control 6.0 через диалоговое окно Components (Компоненты) среды проектирования.

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

Таблица 7.11. Методы элемента управления CommonDialoq

Метод

Описание

ShowOpen

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

ShowSave

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

ShowColor

Вызывает диалоговое окно настройки цветовой палитры

ShowFont

Вызывает диалоговое окно настройки шрифтов текста

ShowPrinter

Вызывает диалоговое окно настройки печати и диалоговое окно печати

ShowHelp

Подключает справочную систему в стиле Windows


 

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

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

2. Присвойте проекту имя MySmallProject. Для этого откройте окно свойств проекта, выбрав команду Project1 Properties (Свойства Project 1) меню Project (Проект). После переименования проекта эта команда примет вид MySmallProject Properties (Свойства MySmallProject).

3. Подключите к проекту библиотеку Microsoft Common Dialog Control 6.0. Для этого в меню Project (Проект) выберите команду Components, в открывшемся диалоговом окне Components (Компоненты) установите флажок, расположенный рядом с названием этой библиотеки, и нажмите кнопку ОК.

4. Задайте наименование формы проекта FormForControlCommDiaiog.

5. Используя свойство caption формы, введите заголовок окна Форма для проверки диалогов CommonDialog.

6. Добавьте в форму элемент управления CommonDialog, дважды щелкнув мышью кнопку CommonDialog на панели элементов управления. Если эта панель отсутствует на экране, то в меню View (Вид) выберите команду TooIBox (Панель инструментов).

7. Присвойте элементу управления CommonDialog наименование cdMyDialog.

8. Добавьте в форму кнопку управления типа commandButton и назовите ее cbControl. Эта кнопка будет использоваться нами для вызова диалогового окна по событию click.

9. Используя свойство caption, введите название кнопки Проверка диалогов CommonDialog.

Полученное приложение представлено на рис. 7.21. Этот проект, содержащий элемент управления commonDialog, будем использовать для создания диалоговых окон и знакомства с ними, размещая в событии click кнопки cbControl код настройки параметров требуемого диалогового окна и вызова соответствующего ему метода.

Рис. 7.21. Проект MySmallProject для проверки диалоговых окон, создаваемых с помощью элемента управления CommonDialog

Диалоговое окно открытия файла

Диалоговое окно открытия файла предназначено для поиска файлов, используемых в программе. Имя выбранного файла или списка файлов возвращается в свойстве FileName объекта CommonDialog. Для вызова диалогового окна открытия файла (рис. 7.22) необходимо в событии click кнопки cbControl приложения MySmallProject ввести следующий код:

Private Sub cbControl_Click()

cdlMyDialog.ShowOpen

End Sub

Рис. 7.22. Диалоговое окно открытия файла, созданное с помощью объекта CornmonDialog

Для ввода кода достаточно дважды щелкнуть на объекте cbcontroi левой кнопкой мыши. При этом открывается редактор кода с шаблоном кода для события click этой кнопки.

Значения для свойства cdlMyDialog. Flags указаны в табл. 7.12.

Таблица 7.12. Значения для метода Flags диалогового окна открытия файла

Константа

Значение

Описание

cdlOFNAllowMultiselect

&H200

Устанавливает возможность множественного выбора файлов в диалоговом окне. Возвращаемые имена файлов находятся в свойстве FileName элемента управления CornmonDialog и разделены пробелами

cdlOFNCreatePrompt

&H2000

Устанавливает для диалогового окна запрос на подтверждение создания нового файла, если он не существует

cdlOFNExplorer

&H80000

Назначает диалоговому окну стиль проводника

cdlOFNExtensionDifferent

&H400

Сообщает, что расширение файла отличается от установленного по умолчанию в свойстве DefaultExt

cdlOFNFileMustExist

&H1000

Устанавливает возможность ввода в диалоговом окне только имен существующих файлов. При вводе несуществующего файла выдается сообщение об ошибке

cdlOFNHelpButton

&H10

Указывает на необходимость размещения в диалоговом окне кнопки Справка

cdlOFNHideReadOnly

&H4

Файлы только для чтения не отображаются

cdlOFNLongNames

&H200000

Разрешает использование длинных имен файлов

cdlOFNNoChangeDi r

&H8

" Назначает папку, открываемую по умолчанию при запуске диалогового окна

cdlOFNNoLongNames

&H40000

Запрещает использование длинных имен файлов

cdlOFNNoReadOniyReturn

&H8000

Указывает, что выводимые в диалоговом окне файлы не должны быть предназначены только для чтения и не находятся в каталоге, защищенном от записи (Write-protected)

cdlOFNNoValidate

&H100

Сообщает о вводе недопустимых символов в имени файла

cdlOFNOverwritePrompt

&H2

Устанавливает для диалогового окна запрос на подтверждение перезаписи существующего файла

cdlOFNPathMustExist

&H800

Устанавливает требование указания полного пути к файлу

cdlOFNReadOnly CdlOFNShareAware

&H1 &H4000

Задает проверку флажка Только чтение

Задает игнорирование ошибки типа блокировки, занятости файла (Sharing violation errors)



Диалоговое окно сохранения файла

Для поиска файла, в котором будут сохранены данные из программы, используется диалоговое окно сохранения файла (рис. 7.23). Это диалоговое окно вызывается так же, как окно открытия файла. Для его создания в событии click кнопки cbControl приложения MySmallProject необходимо заменить код на следующий:

Private Sub cbControl_Click()

cdlMyDialog.ShowSave

End Sub

Рис. 7.23. Диалоговое окно сохранения файла, созданное с помощью объекта CommonDialog

Как видно из рисунка, это диалоговое окно аналогично окну, предназначенному для открытия файла. Флаги этого диалогового окна перечислены в табл. 7.12.

Диалоговое окно настройки цветовой палитры

Для настройки цвета фона формы и расположенных в форме элементов можно использовать диалоговое окно настройки цветовой палитры (рис. 7.24). Для вызова этого диалогового окна необходимо заменить код в событии click кнопки cbcontrol приложения MySmallProject на следующий:

Private Sub cbControl_Click()

cdlMyDialog.ShowColor

End Sub

Рис. 7.24. Диалоговое окно настройки цветовой палитры, созданное с помощью объекта CommonDialog

Константы, используемые для настройки диалогового окна выбора цветовой палитры, перечислены в табл. 7.13. Расширенное диалоговое окно настройки цветовой палитры можно создать с помощью объекта CommonDialog (рис. 7.25).

Таблица 7.13. Значения для метода Flags диалогового окна цветовой палитры

Константа

Значение

Описание

cdlCCFullOpen

&H2

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

cdlCCShowHelp

&H8

Добавляет в диалоговое окно кнопку Справка

cdlCCPreventFullOpen

&H4

Скрывает кнопку Добавить в набор

cdlCCRGBInit

&H1

Восстанавливает в диалоговом окне исходный набор цветов


 

Рис. 7.25. Расширенное диалоговое окно настройки цветовой палитры, созданное с помощью объекта CommonDialog с флагомcdlCCFullOpen

Диалоговое окно настройки шрифтов текста

Для вызова диалогового окна настройки шрифтов (рис. 7.26) необходимо в событие click кнопки cbcontrol ввести следующий код:

Private Sub cbControl_Click()

cdlMyDialog.Flags = cdlCFBoth + cdlCFEffects

cdlMyDialog.ShowFont

End Sub

Рис. 7.26. Диалоговое окно настройки шрифта, открытое с использованием объекта CommonDialog

Флаги диалогового окна настройки шрифтов перечислены в табл. 7.14.

Таблица 7.14. Значения для метода Flags диалогового окна настройки шрифтов

Константа

Значение

Описание

cdlCFANSIOnly

&H400

Назначает выбор только из системных наборов шрифтов Windows

cdlCFApply

&H200

Добавляет в диалоговое окно кнопку Применить

cdlCFBoth

&H3

Назначает использование экранных шрифтов принтера, указанного в свойстве hDC

CdlCFEffects

&H100

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

cdlCFForceFontExis

it &H10000

Назначает вывод предупреждения об ошибке при выборе несуществующего шрифта

cdlCFHelpButton

&H4

Добавляет в диалоговое окно кнопку Справка

cdlCFLimitSize

&H2000

Назначает выбор размеров шрифтов в интервале, указанном в свойствах Min и Мах

cdlCFNoFaceSel

&H80000

Отключает выбор наименования шрифта

cdlCFNoSizeSel

&H1000

Отключает выбор размера шрифта

cdlCFNoSimulations

&H200000

Отключает в диалоговом окне графические шрифты

cdlCFNoStyleSel

&H100000

Отключает выбор стиля шрифта

cdlCFNoVectorFonts

&H800

Отключает выбор векторных шрифтов

cdlCFPrinterFonts

&H2

Назначает выбор только шрифтов принтера, который указан в свойстве hDC

cdlCFScreenFonts

&H1

Назначает выбор только экранных шрифтов системы

cdlCFTTOnly

&H40000

Назначает только выбор шрифтов типа True Type

CdlCFWYSIWYG

&H8000

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



Диалоговое окно печати

Диалоговое окно печати можно вызвать с помощью элемента управления

commonDialog, заменив код в событии click кнопки с наименованием cbControl на следующий:

Private Sub cbControl_Click()

cdlMyDialog.ShowPrinter

End Sub

Открытое диалоговое окно показано на рис. 7.27.

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

Private Sub cbControl_Click()

cdlMyDialog.Flags = cdlPDPrintSetup

cdlMyDialog.ShowPrinter

End Sub

Запустив приложение MySmallProject, вы получите диалоговое окно, показанное на рис. 7.28.

Рис. 7.27. Диалоговое окно печати, открытое с использованием объекта CommonDialog

Рис. 7.28. Диалоговое окно настройки печати, созданное с помощью объекта CommonDialog

Допустимые флаги диалоговых окон печати и настройки печати перечислены в табл. 7.15.

Таблица 7.15. Значения для метода Flags диалогового окна печати

Константа

Значение

Описание

cdlPDAllPages

&НО

Возвращает или устанавливает состояние переключателя печати всех страниц

cdlPDDisablePrintToFile

&H80000

Делает недоступным флажок диалогового окна Печать в файл

cdlPDHelpButton

&H800

Добавляет в диалоговое окно кнопку Справка

cdlPDHidePrintToFile

&H100000

Скрывает флажок диалогового окна Печать в файл

cdlPDNoPageNums

&H8

Скрывает элементы управления в группе Печатать

cdlPDNoWarning

&H80

Отменяет предупреждение об отсутствии принтера по умолчанию

cdlPDPageNums

&H2

Делает недоступными элементы управления, расположенные в области Печатать

cdlPDPrintSetup

&H40

Выводит диалоговое окно настройки печати перед диалогом печати

cdlPDPrintToFile

&H20

Возвращает или устанавливает состояние флажка Печать в файл

cdlPDReturnDefault

&H400

Возвращает имя принтера, используемое по умолчанию

cdlPDUseDevModeCopies

&H40000

Если драйвер принтера не поддерживает создание копий, делает недоступным счетчик Число копий. Если копирование поддерживается, указывает, что номер копии хранится в свойстве Copies



Справочная система в стиле Windows

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

Таблица 7.16. Значения для метода Flags диалогового окна справочной системы

Константа

Значение

Описание

cdlHelpCommandHelp

&Н102

Вызывает справочную систему отдельной командой

cdlHeIpContents

&НЗ

Вызывает содержание справочной системы

cdlHelpContext

&H1

Вызывает отдельную тему справочной системы

cdlHelpContextPopup

&H8

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

cdlHelpIndex

&H3

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

cdlHelpKey

&H101

Вызывает справочную систему по ключевому слову



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

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

Рис. 7.29. Строка состояния приложения

Для добавления строки состояния в форму используется элемент управления statusBar. Чтобы этот объект можно было использовать в приложении, необходимо в окне Components (Компоненты) подключить к выбранному проекту библиотеку Microsoft Window Common Control 6.0. После подключения библиотеки элемент управления StatusBar появляется на панели элементов управления среды проектирования и его можно добавить в форму стандартным способом, как и все другие элементы управления.

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

Таблица 7.17. Значения свойства Style панелей строки состояния

Стиль

Значение

Описание

sbrText

0

Дает возможность отображать текст или изображение в свойствах панели Text и Picture, соответственно

sbrCaps

1

Отображает состояние клавиши <Caps Lock>. Если эта клавиша нажата, текст CAPS на панели яркий, если отжата — затененный

sbrNum

2

Отображает состояние клавиши <Num Lock>

sbrIns

3

Отображает состояние клавиши <lns>

sbrScrl

4

Отображает состояние клавиши <Scroll Lock>

sbrTime

5

Выводит текущее время

sbrDate

6

Выводит текущую дату


 

Настройка строки состояния и управление ею выполняется при помощи окна свойств Property Pages (Страница свойств) этого элемента управления, открываемого при выборе команды Properties (Свойства) контекстного меню объекта (рис. 7.30).

Рис. 7.30. Диалоговое окно Property Pages для строки состояния

Рассмотрим создание строки состояния на примере нашего приложения MyMDIApp. Откроите приложение и выполните следующие действия:

1. Добавьте в форму элемент управления StatusBar, дважды щелкнув мышью

гвг кнопку StatusBar на панели элементов управления.

2. После появления в форме строки состояния присвойте ей имя sbStatusBar.

3. Установите курсор на строку состояния, нажмите правую кнопку мыши и выберите из появившегося контекстного меню команду Properties (Свойства). Откроется диалоговое окно Property Pages для настройки строки состояния.

4. С помощью кнопки Insert Panel (Вставить панель), добавьте в строку состояния еще две панели.

Замечание

По умолчанию строка состояния содержит одну панель.

5. Используя счетчик Index (Индекс), перейдите к настройке панели 1. Панели строки состояния проектируются независимо друг от друга, переключение с одной на другую выполняется при помощи счетчика Index.

6. Первую панель будем использовать для отображения текстовой информации. Установите для нее свойство Style в значение 0 -sbrText, затем в свойство Text этой панели введите значение Текст подсказки.

7. Перейдите к настройке второй панели, установив для счетчика Index значение 2.

8. Вторая панель будет использоваться для отображения текущей даты. Установите для свойства style значение 0 -sbrDate.

Рис. 7.31. Работа приложения, содержащего строку состояния

9. Перейдите к настройке третьей панели, установив для счетчика Index значение 3.

10. Установите для свойства Style значение 0 -sbrCaps. Это будет панель, отображающая состояние клавиши <Caps Lock>.

11. Запустите полученное приложение на выполнение командой Start меню Run. Созданное приложение представлено на рис. 7.31.

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

 

Hosting uCoz