Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Union REGS rg;

Читайте также:
  1. Western Union.

Int main(void)

{

Int i;

Unsigned old_videomode, new_videomode;

char buf[20], *bufptr;

Int nButtons;

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

rg.x.ax=0x0f00; //0f –функция для определения

//режима заносится в AH; в АL – 0

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

old_videomode=rg.h.al; // в АL – текущий режим

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

buf[0]=10; //Первый элемент массива должен

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

printf("Enter new videomode:");

bufptr=cgets(buf);

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

new_videomode=atoi(bufptr);

rg.h.ah=0; //функция установки режима

rg.h.al=new_videomode;

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

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

rg.x.ax=0;

int86(0x33, &rg, &rg);

if(rg.x.bx==0)

{

printf("Mouse not found\n");

Return -1;

}

//Сохраняем количество клавиш

nButtons=rg.x.bx;

printf("Mouse type: %d\n", nButtons);

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

rg.x.ax=1;

int86(0x33, &rg, &rg);

printf("Mouse cursor on. Press any key\n");

Getch();

while(!kbhit())

{

rg.x.ax=3;

int86(0x33, &rg, &rg);

printf("%2d x:%5d y:%5d", rg.x.bx, rg.x.cx, rg.x.dx);

for(i=0; i<18; i++) printf("\b");

}

Getch();

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

rg.x.ax=2;

int86(0x33, &rg, &rg);

//Восстанавливаем режим видеоадаптера

rg.h.ah=0;

rg.h.al=old_videomode;

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

Return 0;

}

Задание к Программе 7.2. Изменить программу таким образом, чтобы курсор мыши устанавливался при запуске программы в позицию Х и Y, где Х – день рождения программиста, Y – номер ПК.

Программа 7.3. Программа демонстрирует изменение формы курсора в графическом режиме.

#include<dos.h>

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

Union REGS reg;

void ms_gform(int xt, int yt, char _far *form);

unsigned char form[64]=

{

//Массив маски по "И"

255, 255, 255, 255, 255, 255, 255, 255, 255, 255,

255, 255, 255, 255, 255, 255,

255, 255, 255, 255, 255, 255, 255, 255, 255, 255,

255, 255, 255, 255, 255, 255,

//Массив маски по "Исключающее ИЛИ"

//Здесь поочередно задаются значения строк двух рядом стоящих вертикальных матриц //размером 16х32, начиная с правой матрицы.

127, 254, 127, 254, 127, 254, 127, 254, 127, 254,

127, 254, 127, 254, 0, 0,

0, 0, 127, 254, 127, 254, 127, 254, 127, 254, 127, 254,

127, 254, 127, 254

};

Int main(void)

{

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("Enter new videomode:");

bufptr=cgets(buf);

new_videomode=atoi(bufptr);

reg.h.ah=0;

reg.h.al=new_videomode;

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

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

reg.x.ax=0;

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

if(reg.x.bx==0)

{

printf("Mouse not found\n");

Return -1;

}

//Задаем новую форму курсора мыши

Ms_gform(0,0, form);

reg.x.ax=1;

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

Getch();

reg.h.ah=0;

reg.h.al=old_videomode;

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

Return 0;

}

void ms_gform(int xt, int yt, char _far *form)

{

Struct SREGS segregs;

reg.x.ax=9;

reg.x.bx=xt;

reg.x.cx=yt;

reg.x.dx=FP_OFF(form);

segregs.es=FP_SEG(form);

int86x(0x33, &reg, &reg, &segregs);

}

*Задание к Программе7.3. Задать форму курсора мыши в виде первой буквы фамилии программиста

Программа 7.4 Создает курсор в виде направленной вверх стрелки на синем фоне.

#include<dos.h>

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

Union REGS reg;

Void ms_tform(int type, int mask1, int mask2);

Int main(void)

{

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

reg.x.ax=0;

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

if(reg.x.bx==0)

{

printf("Mouse not found\n");

Return -1;

}

//Задаем новую форму для курсора мыши

Ms_tform(0,0, 0x1418);

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

reg.x.ax=1;

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

Getch();

Return 0;

}


Дата добавления: 2015-12-07; просмотров: 153 | Нарушение авторских прав



mybiblioteka.su - 2015-2024 год. (0.014 сек.)