• Если кто-то говорит о «магии в программировании», значит он понятия не имеет о том, что такое программирование.

Обработка мыши и клавиатуры

Для создания интерактивных графических программ, например, игр, Microsoft Small Basic имеет класс GraphicsWindow, который поддерживает также работу мыши и клавиатуры. Обратите внимание, что при перемещениях мыши, нажатиях и отпусканиях кнопок мыши, нажатиях и отпусканиях клавиш на клавиатуре графическое окно реагирует вызовом подпрограмм — обработчиков соответствующих событий. Вы можете использовать это для того, чтобы программа выполняла определенные действия в ответ на эти события.

Вы можете скопировать указанный ниже код программы в IDE MS Small Basic и запустить:

'Задание подпрограмм-обработчиков для обработки событий
GraphicsWindow.KeyDown = OnKeyDown
GraphicsWindow.KeyUp = OnKeyUp
GraphicsWindow.MouseDown = OnMouseDown
GraphicsWindow.MouseMove = OnMouseMove
GraphicsWindow.MouseUp = OnMouseUp
GraphicsWindow.TextInput = OnTextInput

Sub OnKeyDown ' Обработчик нажатий клавиш
	GraphicsWindow.Title = "Нажата " + GraphicsWindow.LastKey
EndSub

Sub OnKeyUp ' Обработчик отпускании клавиш
	GraphicsWindow.Title = "Отпущена " + GraphicsWindow.LastKey
EndSub

Sub OnMouseDown ' Обработчик нажатий кнопок мыши
	If Mouse.IsLeftButtonDown Then
		GraphicsWindow.Title = "Левая кнопка нажата"
	ElseIf Mouse.IsRightButtonDown Then
		GraphicsWindow.Title = "Правая кнопка нажата"
	Else
		GraphicsWindow.Title = "Нажата другая кнопка мыши"
	EndIf
EndSub

Sub OnMouseMove ' Обработчик движений мышью
	' GraphicsWindow.MouseX и GraphicsWindow.MouseY - координаты курсора мыши относительно графического окна.
	' Mouse.MouseX и Mouse.MouseY - координаты курсора мыши относительно всего экрана (Рабочего стола Windows).
	GraphicsWindow.Title = "GWX = " + GraphicsWindow.MouseX + ", GWY = " + GraphicsWindow.MouseY + ", ЭкранныйX = " + Mouse.MouseX + ", ЭкранныйY = " + Mouse.MouseY
EndSub

Sub OnMouseUp ' Обработчик отпусканий кнопок мыши
	GraphicsWindow.Title = "Какая-то кнопка мыши отпущена"
EndSub

Sub OnTextInput ' Обработчик текстового ввода
	GraphicsWindow.Title = "Был введён какой-то текст"
EndSub


Поделиться: