Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект_ОС_и_среды.rtf
Скачиваний:
68
Добавлен:
13.09.2019
Размер:
13 Мб
Скачать
☆

7.4. Работа со шрифтами

В операционной системе Windows шрифты делятся на два основных класса экранные и принтерные. При разработке программ наибольший интерес представляют принтерные шрифты, так как они позволяют выводить документ в том виде как он отображается на экране. Для работы со шрифтами используется системный объект Visual Basic Printer. Основные свойства этого объекта: Fonts – массив наименований системных шрифтов, FontCount – число шрифтов в массиве.

Пример. Шрифтов и вывод их названий в виде списка

For i = 0 To Printer.FontCount

‘Заполнение списка

lstFonts.AddItem Printer.Fonts(i)

Next i

Обнаруженные наименования шрифтов можно использовать в программе, присваивая имя шрифта свойству Font визуальных компонентов форм.

7.5. Работа с клавиатурой и мышью

Большинство программ созданных для работы в среде MS Windows имеют GUI интерфейс (графический интерфейс пользователя). Для работы с такой программой используются определенные клавиатурные комбинации и действия, выполненные с помощью «мыши». Для работы с клавиатурой и «мышью» разработчик программы на Visual Basic может использовать следующие события:

  1. Событие KeyPress. Возникает при нажатии клавиши, когда определенный визуальный компонент интерфейса находится в фокусе.

Private Sub idElement_KeyPress(KeyAscii As Integer)

‘Операторы

End Sub

Где KeyAscii – код нажатой клавиши.

  1. События KeyUp, KeyDown. Порождаются когда пользователь отпускает клавишу, либо нажимает. Для отслеживания этих событий свойство формы KeyPreview формы должно получить значение TRUE. В общем виде события нажатия клавиш имеют структуру:

Private Sub Form_[KeyDown|KeyUp](KeyCode As Integer, Shift As Integer)

‘Код события

End Sub

KeyCode – код клавиши.

Shift – код регистровой клавиши.

В Visual Basic каждой клавише соответствует определенная константа. Например vbKeyA – клавиша A, vbKeyF – клавиша F. Регистр клавиши не учитывается.

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

Константа

Код

vbShiftMask

1

VbCtrlMask

2

VbAltMask

4

Отслеживание событий «мыши» выполняется с помощью событий:

MouseMove – порождается при перемещении курсора мыши, MouseDown –появляется при нажатии кнопки «мыши», MouseUp – порождается при отпускании кнопки мыши.

Формат события:

Private Sub Form_MouseMove(Button As Integer, Shift As Integer,

X As Single, Y As Single)

‘Код события

End Sub

Button – код клавиши «мыши».

Shift – код регистровой клавиши.

X,Y – координаты курсора мыши.

Коды клавиш «мыши»:

Константа

Код

vbLeftButton

1

vbRightButton

2

vbMiddleButton

4

Пример №1. Нажатие клавиши на командной кнопке.

Private Sub Command1_KeyPress(KeyAscii As Integer)

If KeyAscii = Asc("a") Then MsgBox (" Key - a ")

If KeyAscii = 27 Then MsgBox (" Key - ESC ! ")

End Sub

Пример №2. Проверка набора пользователем ключевого слова EGG при работе с формой. Если ключевое слово набрано, то выводится окно с текстом сообщения.

Dim buffer As String * 3

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

‘Буква Е

If KeyCode = vbKeyE And Shift = vbShiftMask Then

buffer = Mid(buffer, 2) + "E"

End If

‘Буква G

If KeyCode = vbKeyG And Shift = vbShiftMask Then

buffer = Mid(buffer, 2) + "G"

End If

‘Контрольное слово

If buffer = "EGG" Then

MsgBox "OK !", vbInformation, ""

buffer = ""

End If

End Sub

Пример №3. Отслеживание движения курсора «мыши». При нажатой левой кнопке координаты выводятся в заголовке формы.

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Dim mesXY As String

If Button = vbLeftButton Then ‘левая кнопка

mesXY = "X=" + Str(X) + " Y=" + Str(Y)

End If

Form1.Caption = mesXY ‘вывод координат

End Sub