Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МЫШЬ_1.doc
Скачиваний:
22
Добавлен:
24.08.2019
Размер:
501.76 Кб
Скачать

Задание 4

Исполнить программу, которая устанавливает курсор в левый верхний угол экрана:

#include <stdio.h>

#include <conio.h>

#include "sysp.h"

void main() {

int botm;

// Инициализируем мышь

if(!ms_init(&botm)) {

printf("\nМышь не установлена");

exit(-1);

}

// Включаем курсор и ожидаем нажатия на клавишу

printf("\n\nКурсор мыши включен, "

"для выключения нажмите любую клавишу");

ms_on();

// Устанавливаем курсор в левый верхний угол экрана

ms_setcr(0,0);

getch();

// Выключаем курсор

ms_off();

}

Задание 5

Исполнить программу, которая определяет и выводит на экран состояние мыши при нажатии и отпускании левой клавиши:

#include <dos.h>

#include <stdio.h>

#include <conio.h>

#include "sysp.h"

union REGS reg;

void main() {

int botm, i;

MOUSE_STATE state;

unsigned old_videomode, new_videomode;

char buf[20], *bufptr;

// Определяем текущий видеорежим

reg.x.ax = 0x0f00;

int86(0x10, &reg, &reg);

old_videomode = reg.h.al;

// Устанавливаем новый видеорежим:

// Устанавливаем максимально допустимую длину строки

buf[0] = 10;

printf("\nВведите десятичный номер видеорежима: ");

bufptr = cgets(buf);

// Преобразуем введенное число к формату int

new_videomode = atoi(bufptr);

reg.h.ah = 0;

reg.h.al = new_videomode;

int86(0x10, &reg, &reg);

// Инициализируем мышь, определяем количество клавиш

if(!ms_init(&botm)) {

printf("\nМышь не установлена");

exit(-1);

}

printf("\nУстановлена мышь: ");

switch (botm) {

case 2:

printf("двухклавишная"); break;

case 3:

printf("трехклавишная, системы Mouse Systems");

break;

case 0:

default:

printf("неизвестной системы"); break;

}

printf("\n\nСостояние мыши:\n\n");

// Включаем курсор

ms_on();

while(!kbhit()) {

// Определяем состояние мыши при нажатии на левую клавишу

i = ms_querp(&state, 0);

// Если были нажатия на левую клавишу, выводим состояние мыши

if(i != 0) {

// Перед выводом на экран отключаем курсор, затем включаем его

// снова.

ms_off();

printf("Нажатие: %2d x:%5d y:%5d\n",

state.bottoms,

state.x,

state.y);

ms_on();

}

// Выводим состояние при отпускании клавиши

i = ms_querr(&state, 0);

if(i != 0) {

ms_off();

printf("Отпускание: %2d x:%5d y:%5d\n\n",

state.bottoms,

state.x,

state.y);

ms_on();

}

}

getch();

ms_off();

reg.h.ah = 0;

reg.h.al = old_videomode;

int86(0x10, &reg, &reg);

}