Аппаратное обеспечение IBM PC



         

Задать форму курсора в графическом режиме - часть 2


Мы подготовили пример программы, изменяющий форму курсора в графическом режиме:

#include <dos.h> #include <stdio.h> #include <conio.h> #include "sysp.h"

union REGS reg;

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,

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

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, };

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); }

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

ms_gform(0,0, &form[0]);

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

ms_on();

getch();

ms_off();

reg.h.ah = 0; reg.h.al = old_videomode; int86(0x10, &reg, &reg); }




Содержание  Назад  Вперед