C++: Стандартные библиотечные функции работы с графикой

курсовая работа

2. Реализация пользовательской библиотеки “mouse.h”

В стандартной комплектации BorlandC2.0, BorlandC3.1 или любой версии компилятора C++ от любой другой корпорации, будь то MicroSoft, AT&T и т.д. нет ни одного модуля работы с мышью как-то в обычном или графическом режиме. Я имею в виду приложения под ОС MS-DOS. Конечно, написание такого модуля сводится не только к знаниям языка C++, но и так называемого языка низкоуровневого программирования Assemblerа.

Итак, приступим. Для начала мы должны определить основные функции, типы и константы.

Таблица 1. Константы.

Константа

Значение

Описание

MB_NONE

0

Кнопки мыши не нажаты

MB_LEFT

1

Нажата левая кнопка мыши

MB_RIGHT

2

Нажата правая кнопка мыши

MB_LAR

3

Нажаты обе кнопки мыши

MB_MIDDLE

4

Нажата средняя кнопка мыши

Уточнение: константа MB_MIDDLE работает только с системными мышами и мышами от компании Logitech.

Типы, которые мы будем использовать в нашем модуле:

struct tPoint

{

int x;

int y;

};

struct tMouseState

{

tPoint loc;

int but;

};

Структура tPoint определяет координаты курсора.

Структура tMouseState определяет позицию курсора и состояние кнопок мыши, т.е. нажата ли какая либо кнопка на мышке и если да то какая.

Теперь опишем основные функции, которые используются у нас в модуле.

Функция ResetMouse() “убивает” мышь.

Функция ShowMouse() отображает курсор мыши на мониторе.

Функция HideMouse() скрывает курсор мыши.

Функция GetMouseState() типа tMouseState возвращает параметры мыши.

Функция MoveMouseCursor( int x, int y) перемещает курсор на заданную позицию.

Функция SetMouseVert( int max, int min) устанавливает вертикальные пределы для мыши. Например, если мышь до этой функции двигалась по всему монитору, т.е. от позиции (0, 0) до (640, 480), то после этой функции она будет двигаться только в установленном пространстве, т.е. от позиции (0, min) до (640, max).

Функция SetMouseHorz( int max, int min) устанавливает горизонтальные пределы для мыши. Данная функция полностью аналогична предыдущей. Мышь будет двигаться в пределах от (min, 0) до (max, 480).

Данные функции работают как в графическом, так и в обычном режимах. Если поместить этот модуль в папку где находятся основные модули с расширением *.h, то его можно подключать как “#include <mouse.h>”, иначе его подключение будет выглядеть как “#include “<путь>mouse.h””.

Думаю что этих функция вполне достаточно для работы с мышью. Листинг модуля представлен в приложении 1.

Делись добром ;)